diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000000000000000000000000000000000..6f7f6522ccc7094640a0b273661502680b156911
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+vendor/**/* -diff
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..9f11b755a17d8192c60f61cb17b8902dffbd9f23
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.idea/
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9a68bdb7477ab7da0394827ca3b1ec64e5190b49
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,25 @@
+stages:
+  - test
+
+before_script:
+  - ln -s /builds /go/src/code.vereign.com
+  - cd /go/src/code.vereign.com/${CI_PROJECT_PATH}
+
+lint:
+  image: golangci/golangci-lint:v1.46.2
+  stage: test
+  tags:
+    - amd64-docker
+  script:
+    - golangci-lint --version
+    - golangci-lint run
+
+unit tests:
+  image: golang:1.17.10
+  stage: test
+  tags:
+    - amd64-docker
+  script:
+    - go version
+    - go test -race ./... -coverprofile=coverage.out
+    - go tool cover -func=coverage.out
diff --git a/.golangci.yml b/.golangci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e6ba71d0fff71ba18fa18f4bd0f55fbaad679ab2
--- /dev/null
+++ b/.golangci.yml
@@ -0,0 +1,31 @@
+run:
+  deadline: 5m
+  skip-dirs:
+    - vendor/
+    - .*fakes/
+    - .*generated/
+  skip-files:
+    - .*generated.go
+
+linters:
+  disable-all: true
+  enable:
+    - megacheck
+    - govet
+    - deadcode
+    - errcheck
+    - goconst
+    - gocyclo
+    - goimports
+    - revive
+    - gosec
+    - ineffassign
+    - nakedret
+    - staticcheck
+    - structcheck
+    - unconvert
+    - varcheck
+    - vet
+    - vetshadow
+    - misspell
+    - staticcheck
diff --git a/README.md b/README.md
index b0d812111328c79cb4b1bbc69a6064d5e7f85d0f..ead781061e384d31bfc3ed125fa7dede40ab7ce7 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,4 @@
-# sign
+# signer
+
+Signer service creates and verifies digital signatures, verifiable credentials and verifiable presentations.
 
-Sign service generates verifiable credentials and presentations with signatures.
\ No newline at end of file
diff --git a/cmd/signer/main.go b/cmd/signer/main.go
new file mode 100644
index 0000000000000000000000000000000000000000..c092d38cb06aa657aa71a8f625214d42cd6bc9bd
--- /dev/null
+++ b/cmd/signer/main.go
@@ -0,0 +1,152 @@
+package main
+
+import (
+	"context"
+	"errors"
+	"log"
+	"net/http"
+	"time"
+
+	"github.com/kelseyhightower/envconfig"
+	"go.uber.org/zap"
+	"go.uber.org/zap/zapcore"
+	goahttp "goa.design/goa/v3/http"
+	goa "goa.design/goa/v3/pkg"
+	"golang.org/x/sync/errgroup"
+
+	"code.vereign.com/gaiax/tsa/golib/graceful"
+	goahealth "code.vereign.com/gaiax/tsa/signer/gen/health"
+	goahealthsrv "code.vereign.com/gaiax/tsa/signer/gen/http/health/server"
+	goaopenapisrv "code.vereign.com/gaiax/tsa/signer/gen/http/openapi/server"
+	"code.vereign.com/gaiax/tsa/signer/gen/openapi"
+	"code.vereign.com/gaiax/tsa/signer/internal/config"
+	"code.vereign.com/gaiax/tsa/signer/internal/service"
+	"code.vereign.com/gaiax/tsa/signer/internal/service/health"
+)
+
+var Version = "0.0.0+development"
+
+func main() {
+	// load configuration from environment
+	var cfg config.Config
+	if err := envconfig.Process("", &cfg); err != nil {
+		log.Fatalf("cannot load configuration: %v", err)
+	}
+
+	// create logger
+	logger, err := createLogger(cfg.LogLevel)
+	if err != nil {
+		log.Fatalln(err)
+	}
+	defer logger.Sync() //nolint:errcheck
+
+	logger.Info("signer service started", zap.String("version", Version), zap.String("goa", goa.Version()))
+
+	// create services
+	var (
+		healthSvc goahealth.Service
+	)
+	{
+		healthSvc = health.New()
+	}
+
+	// create endpoints
+	var (
+		healthEndpoints  *goahealth.Endpoints
+		openapiEndpoints *openapi.Endpoints
+	)
+	{
+		healthEndpoints = goahealth.NewEndpoints(healthSvc)
+		openapiEndpoints = openapi.NewEndpoints(nil)
+	}
+
+	// Provide the transport specific request decoder and response encoder.
+	// The goa http package has built-in support for JSON, XML and gob.
+	// Other encodings can be used by providing the corresponding functions,
+	// see goa.design/implement/encoding.
+	var (
+		dec = goahttp.RequestDecoder
+		enc = goahttp.ResponseEncoder
+	)
+
+	// Build the service HTTP request multiplexer and configure it to serve
+	// HTTP requests to the service endpoints.
+	mux := goahttp.NewMuxer()
+
+	// Wrap the endpoints with the transport specific layers. The generated
+	// server packages contains code generated from the design which maps
+	// the service input and output data structures to HTTP requests and
+	// responses.
+	var (
+		healthServer  *goahealthsrv.Server
+		openapiServer *goaopenapisrv.Server
+	)
+	{
+		healthServer = goahealthsrv.New(healthEndpoints, mux, dec, enc, nil, errFormatter)
+		openapiServer = goaopenapisrv.New(openapiEndpoints, mux, dec, enc, nil, errFormatter, nil, nil)
+	}
+
+	// Configure the mux.
+	goahealthsrv.Mount(mux, healthServer)
+	goaopenapisrv.Mount(mux, openapiServer)
+
+	var handler http.Handler = mux
+	srv := &http.Server{
+		Addr:         cfg.HTTP.Host + ":" + cfg.HTTP.Port,
+		Handler:      handler,
+		IdleTimeout:  cfg.HTTP.IdleTimeout,
+		ReadTimeout:  cfg.HTTP.ReadTimeout,
+		WriteTimeout: cfg.HTTP.WriteTimeout,
+	}
+
+	g, ctx := errgroup.WithContext(context.Background())
+	g.Go(func() error {
+		if err := graceful.Shutdown(ctx, srv, 20*time.Second); err != nil {
+			logger.Error("server shutdown error", zap.Error(err))
+			return err
+		}
+		return errors.New("server stopped successfully")
+	})
+	if err := g.Wait(); err != nil {
+		logger.Error("run group stopped", zap.Error(err))
+	}
+
+	logger.Info("bye bye")
+}
+
+func createLogger(logLevel string, opts ...zap.Option) (*zap.Logger, error) {
+	var level = zapcore.InfoLevel
+	if logLevel != "" {
+		err := level.UnmarshalText([]byte(logLevel))
+		if err != nil {
+			return nil, err
+		}
+	}
+
+	config := zap.NewProductionConfig()
+	config.Level = zap.NewAtomicLevelAt(level)
+	config.DisableStacktrace = true
+	config.EncoderConfig.TimeKey = "ts"
+	config.EncoderConfig.EncodeTime = zapcore.RFC3339TimeEncoder
+	return config.Build(opts...)
+}
+
+func errFormatter(e error) goahttp.Statuser {
+	return service.NewErrorResponse(e)
+}
+
+//func httpClient() *http.Client {
+//	return &http.Client{
+//		Transport: &http.Transport{
+//			Proxy: http.ProxyFromEnvironment,
+//			DialContext: (&net.Dialer{
+//				Timeout: 30 * time.Second,
+//			}).DialContext,
+//			MaxIdleConns:        100,
+//			MaxIdleConnsPerHost: 100,
+//			TLSHandshakeTimeout: 10 * time.Second,
+//			IdleConnTimeout:     60 * time.Second,
+//		},
+//		Timeout: 30 * time.Second,
+//	}
+//}
diff --git a/deployment/ci/Dockerfile b/deployment/ci/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..49b266aa8e18251305ca69db6eff6bcf94356ae8
--- /dev/null
+++ b/deployment/ci/Dockerfile
@@ -0,0 +1,19 @@
+FROM golang:1.17.10-alpine3.15 as builder
+
+ENV GOPRIVATE=code.vereign.com
+
+RUN apk add git
+
+WORKDIR /go/src/code.vereign.com/gaiax/tsa/signer
+
+ADD . .
+
+RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-X main.Version=$(git describe --tags --always)" -mod=vendor -o /tmp/signer ./cmd/signer/...
+
+FROM alpine:3.15 as runner
+
+COPY --from=builder /tmp/signer /opt/signer
+
+WORKDIR /opt
+
+CMD ["./signer"]
diff --git a/deployment/compose/Dockerfile b/deployment/compose/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..e76e76df3df9c4a860e2ebe4adabd15c432511e8
--- /dev/null
+++ b/deployment/compose/Dockerfile
@@ -0,0 +1,16 @@
+FROM golang:1.17.10
+
+ENV GO111MODULE=on
+ENV GOPRIVATE=code.vereign.com
+
+RUN go install github.com/canthefason/go-watcher/cmd/watcher@v0.2.4
+
+ADD . /go/src/code.vereign.com/gaiax/tsa/signer
+
+WORKDIR /go/src/code.vereign.com/gaiax/tsa/signer
+
+RUN go install -mod=vendor ./cmd/signer/...
+
+EXPOSE 8080
+
+ENTRYPOINT ["sh", "-c", "/go/bin/watcher -run code.vereign.com/gaiax/tsa/signer/cmd/signer -watch code.vereign.com/gaiax/tsa/signer"]
diff --git a/design/design.go b/design/design.go
new file mode 100644
index 0000000000000000000000000000000000000000..be4a038f470ac37a24a2deccc7732991a02b9f93
--- /dev/null
+++ b/design/design.go
@@ -0,0 +1,50 @@
+// nolint:revive
+package design
+
+import . "goa.design/goa/v3/dsl"
+
+var _ = API("signer", func() {
+	Title("Signer Service")
+	Description("The signer service exposes HTTP API for creating and verifying digital signatures.")
+	Server("signer", func() {
+		Description("Signer Server")
+		Host("development", func() {
+			Description("Local development server")
+			URI("http://localhost:8085")
+		})
+	})
+})
+
+var _ = Service("health", func() {
+	Description("Health service provides health check endpoints.")
+
+	Method("Liveness", func() {
+		Payload(Empty)
+		Result(Empty)
+		HTTP(func() {
+			GET("/liveness")
+			Response(StatusOK)
+		})
+	})
+
+	Method("Readiness", func() {
+		Payload(Empty)
+		Result(Empty)
+		HTTP(func() {
+			GET("/readiness")
+			Response(StatusOK)
+		})
+	})
+})
+
+var _ = Service("openapi", func() {
+	Description("The openapi service serves the OpenAPI(v3) definition.")
+	Meta("swagger:generate", "false")
+	HTTP(func() {
+		Path("/swagger-ui")
+	})
+	Files("/openapi.json", "./gen/http/openapi3.json", func() {
+		Description("JSON document containing the OpenAPI(v3) service definition")
+	})
+	Files("/{*filepath}", "./swagger/")
+})
diff --git a/gen/health/client.go b/gen/health/client.go
new file mode 100644
index 0000000000000000000000000000000000000000..bb0e5706f2754d9fc8bd037964ea478043b4b541
--- /dev/null
+++ b/gen/health/client.go
@@ -0,0 +1,40 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// health client
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package health
+
+import (
+	"context"
+
+	goa "goa.design/goa/v3/pkg"
+)
+
+// Client is the "health" service client.
+type Client struct {
+	LivenessEndpoint  goa.Endpoint
+	ReadinessEndpoint goa.Endpoint
+}
+
+// NewClient initializes a "health" service client given the endpoints.
+func NewClient(liveness, readiness goa.Endpoint) *Client {
+	return &Client{
+		LivenessEndpoint:  liveness,
+		ReadinessEndpoint: readiness,
+	}
+}
+
+// Liveness calls the "Liveness" endpoint of the "health" service.
+func (c *Client) Liveness(ctx context.Context) (err error) {
+	_, err = c.LivenessEndpoint(ctx, nil)
+	return
+}
+
+// Readiness calls the "Readiness" endpoint of the "health" service.
+func (c *Client) Readiness(ctx context.Context) (err error) {
+	_, err = c.ReadinessEndpoint(ctx, nil)
+	return
+}
diff --git a/gen/health/endpoints.go b/gen/health/endpoints.go
new file mode 100644
index 0000000000000000000000000000000000000000..b66a04df6f8ff3a3e45fa2a989a4d0a1fa73b713
--- /dev/null
+++ b/gen/health/endpoints.go
@@ -0,0 +1,50 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// health endpoints
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package health
+
+import (
+	"context"
+
+	goa "goa.design/goa/v3/pkg"
+)
+
+// Endpoints wraps the "health" service endpoints.
+type Endpoints struct {
+	Liveness  goa.Endpoint
+	Readiness goa.Endpoint
+}
+
+// NewEndpoints wraps the methods of the "health" service with endpoints.
+func NewEndpoints(s Service) *Endpoints {
+	return &Endpoints{
+		Liveness:  NewLivenessEndpoint(s),
+		Readiness: NewReadinessEndpoint(s),
+	}
+}
+
+// Use applies the given middleware to all the "health" service endpoints.
+func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
+	e.Liveness = m(e.Liveness)
+	e.Readiness = m(e.Readiness)
+}
+
+// NewLivenessEndpoint returns an endpoint function that calls the method
+// "Liveness" of service "health".
+func NewLivenessEndpoint(s Service) goa.Endpoint {
+	return func(ctx context.Context, req interface{}) (interface{}, error) {
+		return nil, s.Liveness(ctx)
+	}
+}
+
+// NewReadinessEndpoint returns an endpoint function that calls the method
+// "Readiness" of service "health".
+func NewReadinessEndpoint(s Service) goa.Endpoint {
+	return func(ctx context.Context, req interface{}) (interface{}, error) {
+		return nil, s.Readiness(ctx)
+	}
+}
diff --git a/gen/health/service.go b/gen/health/service.go
new file mode 100644
index 0000000000000000000000000000000000000000..850780bb472589537e64938a2c227e5ae50e5172
--- /dev/null
+++ b/gen/health/service.go
@@ -0,0 +1,30 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// health service
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package health
+
+import (
+	"context"
+)
+
+// Health service provides health check endpoints.
+type Service interface {
+	// Liveness implements Liveness.
+	Liveness(context.Context) (err error)
+	// Readiness implements Readiness.
+	Readiness(context.Context) (err error)
+}
+
+// ServiceName is the name of the service as defined in the design. This is the
+// same value that is set in the endpoint request contexts under the ServiceKey
+// key.
+const ServiceName = "health"
+
+// MethodNames lists the service method names as defined in the design. These
+// are the same values that are set in the endpoint request contexts under the
+// MethodKey key.
+var MethodNames = [2]string{"Liveness", "Readiness"}
diff --git a/gen/http/cli/signer/cli.go b/gen/http/cli/signer/cli.go
new file mode 100644
index 0000000000000000000000000000000000000000..866ce5fa712b60b05bb068c4c7e0f52e2a4f13f8
--- /dev/null
+++ b/gen/http/cli/signer/cli.go
@@ -0,0 +1,169 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// signer HTTP client CLI support package
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package cli
+
+import (
+	"flag"
+	"fmt"
+	"net/http"
+	"os"
+
+	healthc "code.vereign.com/gaiax/tsa/signer/gen/http/health/client"
+	goahttp "goa.design/goa/v3/http"
+	goa "goa.design/goa/v3/pkg"
+)
+
+// UsageCommands returns the set of commands and sub-commands using the format
+//
+//    command (subcommand1|subcommand2|...)
+//
+func UsageCommands() string {
+	return `health (liveness|readiness)
+`
+}
+
+// UsageExamples produces an example of a valid invocation of the CLI tool.
+func UsageExamples() string {
+	return os.Args[0] + ` health liveness` + "\n" +
+		""
+}
+
+// ParseEndpoint returns the endpoint and payload as specified on the command
+// line.
+func ParseEndpoint(
+	scheme, host string,
+	doer goahttp.Doer,
+	enc func(*http.Request) goahttp.Encoder,
+	dec func(*http.Response) goahttp.Decoder,
+	restore bool,
+) (goa.Endpoint, interface{}, error) {
+	var (
+		healthFlags = flag.NewFlagSet("health", flag.ContinueOnError)
+
+		healthLivenessFlags = flag.NewFlagSet("liveness", flag.ExitOnError)
+
+		healthReadinessFlags = flag.NewFlagSet("readiness", flag.ExitOnError)
+	)
+	healthFlags.Usage = healthUsage
+	healthLivenessFlags.Usage = healthLivenessUsage
+	healthReadinessFlags.Usage = healthReadinessUsage
+
+	if err := flag.CommandLine.Parse(os.Args[1:]); err != nil {
+		return nil, nil, err
+	}
+
+	if flag.NArg() < 2 { // two non flag args are required: SERVICE and ENDPOINT (aka COMMAND)
+		return nil, nil, fmt.Errorf("not enough arguments")
+	}
+
+	var (
+		svcn string
+		svcf *flag.FlagSet
+	)
+	{
+		svcn = flag.Arg(0)
+		switch svcn {
+		case "health":
+			svcf = healthFlags
+		default:
+			return nil, nil, fmt.Errorf("unknown service %q", svcn)
+		}
+	}
+	if err := svcf.Parse(flag.Args()[1:]); err != nil {
+		return nil, nil, err
+	}
+
+	var (
+		epn string
+		epf *flag.FlagSet
+	)
+	{
+		epn = svcf.Arg(0)
+		switch svcn {
+		case "health":
+			switch epn {
+			case "liveness":
+				epf = healthLivenessFlags
+
+			case "readiness":
+				epf = healthReadinessFlags
+
+			}
+
+		}
+	}
+	if epf == nil {
+		return nil, nil, fmt.Errorf("unknown %q endpoint %q", svcn, epn)
+	}
+
+	// Parse endpoint flags if any
+	if svcf.NArg() > 1 {
+		if err := epf.Parse(svcf.Args()[1:]); err != nil {
+			return nil, nil, err
+		}
+	}
+
+	var (
+		data     interface{}
+		endpoint goa.Endpoint
+		err      error
+	)
+	{
+		switch svcn {
+		case "health":
+			c := healthc.NewClient(scheme, host, doer, enc, dec, restore)
+			switch epn {
+			case "liveness":
+				endpoint = c.Liveness()
+				data = nil
+			case "readiness":
+				endpoint = c.Readiness()
+				data = nil
+			}
+		}
+	}
+	if err != nil {
+		return nil, nil, err
+	}
+
+	return endpoint, data, nil
+}
+
+// healthUsage displays the usage of the health command and its subcommands.
+func healthUsage() {
+	fmt.Fprintf(os.Stderr, `Health service provides health check endpoints.
+Usage:
+    %[1]s [globalflags] health COMMAND [flags]
+
+COMMAND:
+    liveness: Liveness implements Liveness.
+    readiness: Readiness implements Readiness.
+
+Additional help:
+    %[1]s health COMMAND --help
+`, os.Args[0])
+}
+func healthLivenessUsage() {
+	fmt.Fprintf(os.Stderr, `%[1]s [flags] health liveness
+
+Liveness implements Liveness.
+
+Example:
+    %[1]s health liveness
+`, os.Args[0])
+}
+
+func healthReadinessUsage() {
+	fmt.Fprintf(os.Stderr, `%[1]s [flags] health readiness
+
+Readiness implements Readiness.
+
+Example:
+    %[1]s health readiness
+`, os.Args[0])
+}
diff --git a/gen/http/health/client/cli.go b/gen/http/health/client/cli.go
new file mode 100644
index 0000000000000000000000000000000000000000..aa9f69829f163dc692e4b4eb19ad99fbe2793113
--- /dev/null
+++ b/gen/http/health/client/cli.go
@@ -0,0 +1,8 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// health HTTP client CLI support package
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package client
diff --git a/gen/http/health/client/client.go b/gen/http/health/client/client.go
new file mode 100644
index 0000000000000000000000000000000000000000..49d1e85f6399eb40fecb09592d173ff48da75a89
--- /dev/null
+++ b/gen/http/health/client/client.go
@@ -0,0 +1,94 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// health client HTTP transport
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package client
+
+import (
+	"context"
+	"net/http"
+
+	goahttp "goa.design/goa/v3/http"
+	goa "goa.design/goa/v3/pkg"
+)
+
+// Client lists the health service endpoint HTTP clients.
+type Client struct {
+	// Liveness Doer is the HTTP client used to make requests to the Liveness
+	// endpoint.
+	LivenessDoer goahttp.Doer
+
+	// Readiness Doer is the HTTP client used to make requests to the Readiness
+	// endpoint.
+	ReadinessDoer goahttp.Doer
+
+	// RestoreResponseBody controls whether the response bodies are reset after
+	// decoding so they can be read again.
+	RestoreResponseBody bool
+
+	scheme  string
+	host    string
+	encoder func(*http.Request) goahttp.Encoder
+	decoder func(*http.Response) goahttp.Decoder
+}
+
+// NewClient instantiates HTTP clients for all the health service servers.
+func NewClient(
+	scheme string,
+	host string,
+	doer goahttp.Doer,
+	enc func(*http.Request) goahttp.Encoder,
+	dec func(*http.Response) goahttp.Decoder,
+	restoreBody bool,
+) *Client {
+	return &Client{
+		LivenessDoer:        doer,
+		ReadinessDoer:       doer,
+		RestoreResponseBody: restoreBody,
+		scheme:              scheme,
+		host:                host,
+		decoder:             dec,
+		encoder:             enc,
+	}
+}
+
+// Liveness returns an endpoint that makes HTTP requests to the health service
+// Liveness server.
+func (c *Client) Liveness() goa.Endpoint {
+	var (
+		decodeResponse = DecodeLivenessResponse(c.decoder, c.RestoreResponseBody)
+	)
+	return func(ctx context.Context, v interface{}) (interface{}, error) {
+		req, err := c.BuildLivenessRequest(ctx, v)
+		if err != nil {
+			return nil, err
+		}
+		resp, err := c.LivenessDoer.Do(req)
+		if err != nil {
+			return nil, goahttp.ErrRequestError("health", "Liveness", err)
+		}
+		return decodeResponse(resp)
+	}
+}
+
+// Readiness returns an endpoint that makes HTTP requests to the health service
+// Readiness server.
+func (c *Client) Readiness() goa.Endpoint {
+	var (
+		decodeResponse = DecodeReadinessResponse(c.decoder, c.RestoreResponseBody)
+	)
+	return func(ctx context.Context, v interface{}) (interface{}, error) {
+		req, err := c.BuildReadinessRequest(ctx, v)
+		if err != nil {
+			return nil, err
+		}
+		resp, err := c.ReadinessDoer.Do(req)
+		if err != nil {
+			return nil, goahttp.ErrRequestError("health", "Readiness", err)
+		}
+		return decodeResponse(resp)
+	}
+}
diff --git a/gen/http/health/client/encode_decode.go b/gen/http/health/client/encode_decode.go
new file mode 100644
index 0000000000000000000000000000000000000000..4b455f0d329f35142436ded1e84b89c7d615ebcb
--- /dev/null
+++ b/gen/http/health/client/encode_decode.go
@@ -0,0 +1,102 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// health HTTP client encoders and decoders
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package client
+
+import (
+	"bytes"
+	"context"
+	"io/ioutil"
+	"net/http"
+	"net/url"
+
+	goahttp "goa.design/goa/v3/http"
+)
+
+// BuildLivenessRequest instantiates a HTTP request object with method and path
+// set to call the "health" service "Liveness" endpoint
+func (c *Client) BuildLivenessRequest(ctx context.Context, v interface{}) (*http.Request, error) {
+	u := &url.URL{Scheme: c.scheme, Host: c.host, Path: LivenessHealthPath()}
+	req, err := http.NewRequest("GET", u.String(), nil)
+	if err != nil {
+		return nil, goahttp.ErrInvalidURL("health", "Liveness", u.String(), err)
+	}
+	if ctx != nil {
+		req = req.WithContext(ctx)
+	}
+
+	return req, nil
+}
+
+// DecodeLivenessResponse returns a decoder for responses returned by the
+// health Liveness endpoint. restoreBody controls whether the response body
+// should be restored after having been read.
+func DecodeLivenessResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (interface{}, error) {
+	return func(resp *http.Response) (interface{}, error) {
+		if restoreBody {
+			b, err := ioutil.ReadAll(resp.Body)
+			if err != nil {
+				return nil, err
+			}
+			resp.Body = ioutil.NopCloser(bytes.NewBuffer(b))
+			defer func() {
+				resp.Body = ioutil.NopCloser(bytes.NewBuffer(b))
+			}()
+		} else {
+			defer resp.Body.Close()
+		}
+		switch resp.StatusCode {
+		case http.StatusOK:
+			return nil, nil
+		default:
+			body, _ := ioutil.ReadAll(resp.Body)
+			return nil, goahttp.ErrInvalidResponse("health", "Liveness", resp.StatusCode, string(body))
+		}
+	}
+}
+
+// BuildReadinessRequest instantiates a HTTP request object with method and
+// path set to call the "health" service "Readiness" endpoint
+func (c *Client) BuildReadinessRequest(ctx context.Context, v interface{}) (*http.Request, error) {
+	u := &url.URL{Scheme: c.scheme, Host: c.host, Path: ReadinessHealthPath()}
+	req, err := http.NewRequest("GET", u.String(), nil)
+	if err != nil {
+		return nil, goahttp.ErrInvalidURL("health", "Readiness", u.String(), err)
+	}
+	if ctx != nil {
+		req = req.WithContext(ctx)
+	}
+
+	return req, nil
+}
+
+// DecodeReadinessResponse returns a decoder for responses returned by the
+// health Readiness endpoint. restoreBody controls whether the response body
+// should be restored after having been read.
+func DecodeReadinessResponse(decoder func(*http.Response) goahttp.Decoder, restoreBody bool) func(*http.Response) (interface{}, error) {
+	return func(resp *http.Response) (interface{}, error) {
+		if restoreBody {
+			b, err := ioutil.ReadAll(resp.Body)
+			if err != nil {
+				return nil, err
+			}
+			resp.Body = ioutil.NopCloser(bytes.NewBuffer(b))
+			defer func() {
+				resp.Body = ioutil.NopCloser(bytes.NewBuffer(b))
+			}()
+		} else {
+			defer resp.Body.Close()
+		}
+		switch resp.StatusCode {
+		case http.StatusOK:
+			return nil, nil
+		default:
+			body, _ := ioutil.ReadAll(resp.Body)
+			return nil, goahttp.ErrInvalidResponse("health", "Readiness", resp.StatusCode, string(body))
+		}
+	}
+}
diff --git a/gen/http/health/client/paths.go b/gen/http/health/client/paths.go
new file mode 100644
index 0000000000000000000000000000000000000000..c82620cdc86e591d8671001bad4cde0a7e5ac900
--- /dev/null
+++ b/gen/http/health/client/paths.go
@@ -0,0 +1,18 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// HTTP request path constructors for the health service.
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package client
+
+// LivenessHealthPath returns the URL path to the health service Liveness HTTP endpoint.
+func LivenessHealthPath() string {
+	return "/liveness"
+}
+
+// ReadinessHealthPath returns the URL path to the health service Readiness HTTP endpoint.
+func ReadinessHealthPath() string {
+	return "/readiness"
+}
diff --git a/gen/http/health/client/types.go b/gen/http/health/client/types.go
new file mode 100644
index 0000000000000000000000000000000000000000..e6c98d0a01138e483c5bcd37b907add720cc9d9a
--- /dev/null
+++ b/gen/http/health/client/types.go
@@ -0,0 +1,8 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// health HTTP client types
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package client
diff --git a/gen/http/health/server/encode_decode.go b/gen/http/health/server/encode_decode.go
new file mode 100644
index 0000000000000000000000000000000000000000..ae0ba7b1ddcf0c1910f3f2502a38ed543a2d551c
--- /dev/null
+++ b/gen/http/health/server/encode_decode.go
@@ -0,0 +1,33 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// health HTTP server encoders and decoders
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package server
+
+import (
+	"context"
+	"net/http"
+
+	goahttp "goa.design/goa/v3/http"
+)
+
+// EncodeLivenessResponse returns an encoder for responses returned by the
+// health Liveness endpoint.
+func EncodeLivenessResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, interface{}) error {
+	return func(ctx context.Context, w http.ResponseWriter, v interface{}) error {
+		w.WriteHeader(http.StatusOK)
+		return nil
+	}
+}
+
+// EncodeReadinessResponse returns an encoder for responses returned by the
+// health Readiness endpoint.
+func EncodeReadinessResponse(encoder func(context.Context, http.ResponseWriter) goahttp.Encoder) func(context.Context, http.ResponseWriter, interface{}) error {
+	return func(ctx context.Context, w http.ResponseWriter, v interface{}) error {
+		w.WriteHeader(http.StatusOK)
+		return nil
+	}
+}
diff --git a/gen/http/health/server/paths.go b/gen/http/health/server/paths.go
new file mode 100644
index 0000000000000000000000000000000000000000..33c101b2b5892f802c43133aaa8e635c2cab452f
--- /dev/null
+++ b/gen/http/health/server/paths.go
@@ -0,0 +1,18 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// HTTP request path constructors for the health service.
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package server
+
+// LivenessHealthPath returns the URL path to the health service Liveness HTTP endpoint.
+func LivenessHealthPath() string {
+	return "/liveness"
+}
+
+// ReadinessHealthPath returns the URL path to the health service Readiness HTTP endpoint.
+func ReadinessHealthPath() string {
+	return "/readiness"
+}
diff --git a/gen/http/health/server/server.go b/gen/http/health/server/server.go
new file mode 100644
index 0000000000000000000000000000000000000000..171c5f1d88032ffecc9fc24d668ccd91a18e1802
--- /dev/null
+++ b/gen/http/health/server/server.go
@@ -0,0 +1,173 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// health HTTP server
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package server
+
+import (
+	"context"
+	"net/http"
+
+	health "code.vereign.com/gaiax/tsa/signer/gen/health"
+	goahttp "goa.design/goa/v3/http"
+	goa "goa.design/goa/v3/pkg"
+)
+
+// Server lists the health service endpoint HTTP handlers.
+type Server struct {
+	Mounts    []*MountPoint
+	Liveness  http.Handler
+	Readiness http.Handler
+}
+
+// ErrorNamer is an interface implemented by generated error structs that
+// exposes the name of the error as defined in the design.
+type ErrorNamer interface {
+	ErrorName() string
+}
+
+// MountPoint holds information about the mounted endpoints.
+type MountPoint struct {
+	// Method is the name of the service method served by the mounted HTTP handler.
+	Method string
+	// Verb is the HTTP method used to match requests to the mounted handler.
+	Verb string
+	// Pattern is the HTTP request path pattern used to match requests to the
+	// mounted handler.
+	Pattern string
+}
+
+// New instantiates HTTP handlers for all the health service endpoints using
+// the provided encoder and decoder. The handlers are mounted on the given mux
+// using the HTTP verb and path defined in the design. errhandler is called
+// whenever a response fails to be encoded. formatter is used to format errors
+// returned by the service methods prior to encoding. Both errhandler and
+// formatter are optional and can be nil.
+func New(
+	e *health.Endpoints,
+	mux goahttp.Muxer,
+	decoder func(*http.Request) goahttp.Decoder,
+	encoder func(context.Context, http.ResponseWriter) goahttp.Encoder,
+	errhandler func(context.Context, http.ResponseWriter, error),
+	formatter func(err error) goahttp.Statuser,
+) *Server {
+	return &Server{
+		Mounts: []*MountPoint{
+			{"Liveness", "GET", "/liveness"},
+			{"Readiness", "GET", "/readiness"},
+		},
+		Liveness:  NewLivenessHandler(e.Liveness, mux, decoder, encoder, errhandler, formatter),
+		Readiness: NewReadinessHandler(e.Readiness, mux, decoder, encoder, errhandler, formatter),
+	}
+}
+
+// Service returns the name of the service served.
+func (s *Server) Service() string { return "health" }
+
+// Use wraps the server handlers with the given middleware.
+func (s *Server) Use(m func(http.Handler) http.Handler) {
+	s.Liveness = m(s.Liveness)
+	s.Readiness = m(s.Readiness)
+}
+
+// Mount configures the mux to serve the health endpoints.
+func Mount(mux goahttp.Muxer, h *Server) {
+	MountLivenessHandler(mux, h.Liveness)
+	MountReadinessHandler(mux, h.Readiness)
+}
+
+// Mount configures the mux to serve the health endpoints.
+func (s *Server) Mount(mux goahttp.Muxer) {
+	Mount(mux, s)
+}
+
+// MountLivenessHandler configures the mux to serve the "health" service
+// "Liveness" endpoint.
+func MountLivenessHandler(mux goahttp.Muxer, h http.Handler) {
+	f, ok := h.(http.HandlerFunc)
+	if !ok {
+		f = func(w http.ResponseWriter, r *http.Request) {
+			h.ServeHTTP(w, r)
+		}
+	}
+	mux.Handle("GET", "/liveness", f)
+}
+
+// NewLivenessHandler creates a HTTP handler which loads the HTTP request and
+// calls the "health" service "Liveness" endpoint.
+func NewLivenessHandler(
+	endpoint goa.Endpoint,
+	mux goahttp.Muxer,
+	decoder func(*http.Request) goahttp.Decoder,
+	encoder func(context.Context, http.ResponseWriter) goahttp.Encoder,
+	errhandler func(context.Context, http.ResponseWriter, error),
+	formatter func(err error) goahttp.Statuser,
+) http.Handler {
+	var (
+		encodeResponse = EncodeLivenessResponse(encoder)
+		encodeError    = goahttp.ErrorEncoder(encoder, formatter)
+	)
+	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+		ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept"))
+		ctx = context.WithValue(ctx, goa.MethodKey, "Liveness")
+		ctx = context.WithValue(ctx, goa.ServiceKey, "health")
+		var err error
+		res, err := endpoint(ctx, nil)
+		if err != nil {
+			if err := encodeError(ctx, w, err); err != nil {
+				errhandler(ctx, w, err)
+			}
+			return
+		}
+		if err := encodeResponse(ctx, w, res); err != nil {
+			errhandler(ctx, w, err)
+		}
+	})
+}
+
+// MountReadinessHandler configures the mux to serve the "health" service
+// "Readiness" endpoint.
+func MountReadinessHandler(mux goahttp.Muxer, h http.Handler) {
+	f, ok := h.(http.HandlerFunc)
+	if !ok {
+		f = func(w http.ResponseWriter, r *http.Request) {
+			h.ServeHTTP(w, r)
+		}
+	}
+	mux.Handle("GET", "/readiness", f)
+}
+
+// NewReadinessHandler creates a HTTP handler which loads the HTTP request and
+// calls the "health" service "Readiness" endpoint.
+func NewReadinessHandler(
+	endpoint goa.Endpoint,
+	mux goahttp.Muxer,
+	decoder func(*http.Request) goahttp.Decoder,
+	encoder func(context.Context, http.ResponseWriter) goahttp.Encoder,
+	errhandler func(context.Context, http.ResponseWriter, error),
+	formatter func(err error) goahttp.Statuser,
+) http.Handler {
+	var (
+		encodeResponse = EncodeReadinessResponse(encoder)
+		encodeError    = goahttp.ErrorEncoder(encoder, formatter)
+	)
+	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+		ctx := context.WithValue(r.Context(), goahttp.AcceptTypeKey, r.Header.Get("Accept"))
+		ctx = context.WithValue(ctx, goa.MethodKey, "Readiness")
+		ctx = context.WithValue(ctx, goa.ServiceKey, "health")
+		var err error
+		res, err := endpoint(ctx, nil)
+		if err != nil {
+			if err := encodeError(ctx, w, err); err != nil {
+				errhandler(ctx, w, err)
+			}
+			return
+		}
+		if err := encodeResponse(ctx, w, res); err != nil {
+			errhandler(ctx, w, err)
+		}
+	})
+}
diff --git a/gen/http/health/server/types.go b/gen/http/health/server/types.go
new file mode 100644
index 0000000000000000000000000000000000000000..0a75ad3f117dd2e29f632d72eb1e6c7ce622639a
--- /dev/null
+++ b/gen/http/health/server/types.go
@@ -0,0 +1,8 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// health HTTP server types
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package server
diff --git a/gen/http/openapi.json b/gen/http/openapi.json
new file mode 100644
index 0000000000000000000000000000000000000000..87e3c545e5d7436a0c3c3c9e84c796193d28c2ab
--- /dev/null
+++ b/gen/http/openapi.json
@@ -0,0 +1 @@
+{"swagger":"2.0","info":{"title":"Signer Service","description":"The signer service exposes HTTP API for creating and verifying digital signatures.","version":""},"host":"localhost:8085","consumes":["application/json","application/xml","application/gob"],"produces":["application/json","application/xml","application/gob"],"paths":{"/liveness":{"get":{"tags":["health"],"summary":"Liveness health","operationId":"health#Liveness","responses":{"200":{"description":"OK response."}},"schemes":["http"]}},"/readiness":{"get":{"tags":["health"],"summary":"Readiness health","operationId":"health#Readiness","responses":{"200":{"description":"OK response."}},"schemes":["http"]}}}}
\ No newline at end of file
diff --git a/gen/http/openapi.yaml b/gen/http/openapi.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..20d8ea96e202841cb978d01c9d6bea75c2524135
--- /dev/null
+++ b/gen/http/openapi.yaml
@@ -0,0 +1,37 @@
+swagger: "2.0"
+info:
+    title: Signer Service
+    description: The signer service exposes HTTP API for creating and verifying digital signatures.
+    version: ""
+host: localhost:8085
+consumes:
+    - application/json
+    - application/xml
+    - application/gob
+produces:
+    - application/json
+    - application/xml
+    - application/gob
+paths:
+    /liveness:
+        get:
+            tags:
+                - health
+            summary: Liveness health
+            operationId: health#Liveness
+            responses:
+                "200":
+                    description: OK response.
+            schemes:
+                - http
+    /readiness:
+        get:
+            tags:
+                - health
+            summary: Readiness health
+            operationId: health#Readiness
+            responses:
+                "200":
+                    description: OK response.
+            schemes:
+                - http
diff --git a/gen/http/openapi/client/client.go b/gen/http/openapi/client/client.go
new file mode 100644
index 0000000000000000000000000000000000000000..1a75f8637c051c0d438cea70ffd198aac0c0ad26
--- /dev/null
+++ b/gen/http/openapi/client/client.go
@@ -0,0 +1,44 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// openapi client HTTP transport
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package client
+
+import (
+	"net/http"
+
+	goahttp "goa.design/goa/v3/http"
+)
+
+// Client lists the openapi service endpoint HTTP clients.
+type Client struct {
+	// RestoreResponseBody controls whether the response bodies are reset after
+	// decoding so they can be read again.
+	RestoreResponseBody bool
+
+	scheme  string
+	host    string
+	encoder func(*http.Request) goahttp.Encoder
+	decoder func(*http.Response) goahttp.Decoder
+}
+
+// NewClient instantiates HTTP clients for all the openapi service servers.
+func NewClient(
+	scheme string,
+	host string,
+	doer goahttp.Doer,
+	enc func(*http.Request) goahttp.Encoder,
+	dec func(*http.Response) goahttp.Decoder,
+	restoreBody bool,
+) *Client {
+	return &Client{
+		RestoreResponseBody: restoreBody,
+		scheme:              scheme,
+		host:                host,
+		decoder:             dec,
+		encoder:             enc,
+	}
+}
diff --git a/gen/http/openapi/client/encode_decode.go b/gen/http/openapi/client/encode_decode.go
new file mode 100644
index 0000000000000000000000000000000000000000..ba2361b0329733fb6ddfa4f90d7b190eb7f91389
--- /dev/null
+++ b/gen/http/openapi/client/encode_decode.go
@@ -0,0 +1,8 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// openapi HTTP client encoders and decoders
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package client
diff --git a/gen/http/openapi/client/paths.go b/gen/http/openapi/client/paths.go
new file mode 100644
index 0000000000000000000000000000000000000000..93caf0ea4c33fd0bacf9040362696f45d4840450
--- /dev/null
+++ b/gen/http/openapi/client/paths.go
@@ -0,0 +1,8 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// HTTP request path constructors for the openapi service.
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package client
diff --git a/gen/http/openapi/client/types.go b/gen/http/openapi/client/types.go
new file mode 100644
index 0000000000000000000000000000000000000000..89bf15b12a34b7d2e43f3a14b38d831fedf63783
--- /dev/null
+++ b/gen/http/openapi/client/types.go
@@ -0,0 +1,8 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// openapi HTTP client types
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package client
diff --git a/gen/http/openapi/server/paths.go b/gen/http/openapi/server/paths.go
new file mode 100644
index 0000000000000000000000000000000000000000..76f5b1a676e8d4679ac35aeebaaa8979334c22f2
--- /dev/null
+++ b/gen/http/openapi/server/paths.go
@@ -0,0 +1,8 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// HTTP request path constructors for the openapi service.
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package server
diff --git a/gen/http/openapi/server/server.go b/gen/http/openapi/server/server.go
new file mode 100644
index 0000000000000000000000000000000000000000..037d0d35f250218f9e4ef7f9f218ae6cb6d177cf
--- /dev/null
+++ b/gen/http/openapi/server/server.go
@@ -0,0 +1,102 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// openapi HTTP server
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package server
+
+import (
+	"context"
+	"net/http"
+
+	openapi "code.vereign.com/gaiax/tsa/signer/gen/openapi"
+	goahttp "goa.design/goa/v3/http"
+)
+
+// Server lists the openapi service endpoint HTTP handlers.
+type Server struct {
+	Mounts              []*MountPoint
+	GenHTTPOpenapi3JSON http.Handler
+	Swagger             http.Handler
+}
+
+// ErrorNamer is an interface implemented by generated error structs that
+// exposes the name of the error as defined in the design.
+type ErrorNamer interface {
+	ErrorName() string
+}
+
+// MountPoint holds information about the mounted endpoints.
+type MountPoint struct {
+	// Method is the name of the service method served by the mounted HTTP handler.
+	Method string
+	// Verb is the HTTP method used to match requests to the mounted handler.
+	Verb string
+	// Pattern is the HTTP request path pattern used to match requests to the
+	// mounted handler.
+	Pattern string
+}
+
+// New instantiates HTTP handlers for all the openapi service endpoints using
+// the provided encoder and decoder. The handlers are mounted on the given mux
+// using the HTTP verb and path defined in the design. errhandler is called
+// whenever a response fails to be encoded. formatter is used to format errors
+// returned by the service methods prior to encoding. Both errhandler and
+// formatter are optional and can be nil.
+func New(
+	e *openapi.Endpoints,
+	mux goahttp.Muxer,
+	decoder func(*http.Request) goahttp.Decoder,
+	encoder func(context.Context, http.ResponseWriter) goahttp.Encoder,
+	errhandler func(context.Context, http.ResponseWriter, error),
+	formatter func(err error) goahttp.Statuser,
+	fileSystemGenHTTPOpenapi3JSON http.FileSystem,
+	fileSystemSwagger http.FileSystem,
+) *Server {
+	if fileSystemGenHTTPOpenapi3JSON == nil {
+		fileSystemGenHTTPOpenapi3JSON = http.Dir(".")
+	}
+	if fileSystemSwagger == nil {
+		fileSystemSwagger = http.Dir(".")
+	}
+	return &Server{
+		Mounts: []*MountPoint{
+			{"./gen/http/openapi3.json", "GET", "/swagger-ui/openapi.json"},
+			{"./swagger/", "GET", "/swagger-ui"},
+		},
+		GenHTTPOpenapi3JSON: http.FileServer(fileSystemGenHTTPOpenapi3JSON),
+		Swagger:             http.FileServer(fileSystemSwagger),
+	}
+}
+
+// Service returns the name of the service served.
+func (s *Server) Service() string { return "openapi" }
+
+// Use wraps the server handlers with the given middleware.
+func (s *Server) Use(m func(http.Handler) http.Handler) {
+}
+
+// Mount configures the mux to serve the openapi endpoints.
+func Mount(mux goahttp.Muxer, h *Server) {
+	MountGenHTTPOpenapi3JSON(mux, goahttp.Replace("", "/./gen/http/openapi3.json", h.GenHTTPOpenapi3JSON))
+	MountSwagger(mux, goahttp.Replace("/swagger-ui", "/./swagger/", h.Swagger))
+}
+
+// Mount configures the mux to serve the openapi endpoints.
+func (s *Server) Mount(mux goahttp.Muxer) {
+	Mount(mux, s)
+}
+
+// MountGenHTTPOpenapi3JSON configures the mux to serve GET request made to
+// "/swagger-ui/openapi.json".
+func MountGenHTTPOpenapi3JSON(mux goahttp.Muxer, h http.Handler) {
+	mux.Handle("GET", "/swagger-ui/openapi.json", h.ServeHTTP)
+}
+
+// MountSwagger configures the mux to serve GET request made to "/swagger-ui".
+func MountSwagger(mux goahttp.Muxer, h http.Handler) {
+	mux.Handle("GET", "/swagger-ui/", h.ServeHTTP)
+	mux.Handle("GET", "/swagger-ui/*filepath", h.ServeHTTP)
+}
diff --git a/gen/http/openapi/server/types.go b/gen/http/openapi/server/types.go
new file mode 100644
index 0000000000000000000000000000000000000000..87eac8c61dcdd9763aaacc9e353842e652eb1eeb
--- /dev/null
+++ b/gen/http/openapi/server/types.go
@@ -0,0 +1,8 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// openapi HTTP server types
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package server
diff --git a/gen/http/openapi3.json b/gen/http/openapi3.json
new file mode 100644
index 0000000000000000000000000000000000000000..080704ec808f2f9df24a543f2c57d444a704bc7f
--- /dev/null
+++ b/gen/http/openapi3.json
@@ -0,0 +1 @@
+{"openapi":"3.0.3","info":{"title":"Signer Service","description":"The signer service exposes HTTP API for creating and verifying digital signatures.","version":"1.0"},"servers":[{"url":"http://localhost:8085","description":"Signer Server"}],"paths":{"/liveness":{"get":{"tags":["health"],"summary":"Liveness health","operationId":"health#Liveness","responses":{"200":{"description":"OK response."}}}},"/readiness":{"get":{"tags":["health"],"summary":"Readiness health","operationId":"health#Readiness","responses":{"200":{"description":"OK response."}}}}},"components":{},"tags":[{"name":"health","description":"Health service provides health check endpoints."}]}
\ No newline at end of file
diff --git a/gen/http/openapi3.yaml b/gen/http/openapi3.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c8d55ad525941bad1c59e848d2ce1cc488df771a
--- /dev/null
+++ b/gen/http/openapi3.yaml
@@ -0,0 +1,31 @@
+openapi: 3.0.3
+info:
+    title: Signer Service
+    description: The signer service exposes HTTP API for creating and verifying digital signatures.
+    version: "1.0"
+servers:
+    - url: http://localhost:8085
+      description: Signer Server
+paths:
+    /liveness:
+        get:
+            tags:
+                - health
+            summary: Liveness health
+            operationId: health#Liveness
+            responses:
+                "200":
+                    description: OK response.
+    /readiness:
+        get:
+            tags:
+                - health
+            summary: Readiness health
+            operationId: health#Readiness
+            responses:
+                "200":
+                    description: OK response.
+components: {}
+tags:
+    - name: health
+      description: Health service provides health check endpoints.
diff --git a/gen/openapi/client.go b/gen/openapi/client.go
new file mode 100644
index 0000000000000000000000000000000000000000..e21ad8fa3e157b720c42fadf1c1b075b0c7ce5ad
--- /dev/null
+++ b/gen/openapi/client.go
@@ -0,0 +1,21 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// openapi client
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package openapi
+
+import (
+	goa "goa.design/goa/v3/pkg"
+)
+
+// Client is the "openapi" service client.
+type Client struct {
+}
+
+// NewClient initializes a "openapi" service client given the endpoints.
+func NewClient(goa.Endpoint) *Client {
+	return &Client{}
+}
diff --git a/gen/openapi/endpoints.go b/gen/openapi/endpoints.go
new file mode 100644
index 0000000000000000000000000000000000000000..e16abd2099a4bc7a8bb7da1f35e5cb994fe96616
--- /dev/null
+++ b/gen/openapi/endpoints.go
@@ -0,0 +1,25 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// openapi endpoints
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package openapi
+
+import (
+	goa "goa.design/goa/v3/pkg"
+)
+
+// Endpoints wraps the "openapi" service endpoints.
+type Endpoints struct {
+}
+
+// NewEndpoints wraps the methods of the "openapi" service with endpoints.
+func NewEndpoints(s Service) *Endpoints {
+	return &Endpoints{}
+}
+
+// Use applies the given middleware to all the "openapi" service endpoints.
+func (e *Endpoints) Use(m func(goa.Endpoint) goa.Endpoint) {
+}
diff --git a/gen/openapi/service.go b/gen/openapi/service.go
new file mode 100644
index 0000000000000000000000000000000000000000..86bb0e92cbad51f193706e2296a7fbb3b1a63307
--- /dev/null
+++ b/gen/openapi/service.go
@@ -0,0 +1,22 @@
+// Code generated by goa v3.7.6, DO NOT EDIT.
+//
+// openapi service
+//
+// Command:
+// $ goa gen code.vereign.com/gaiax/tsa/signer/design
+
+package openapi
+
+// The openapi service serves the OpenAPI(v3) definition.
+type Service interface {
+}
+
+// ServiceName is the name of the service as defined in the design. This is the
+// same value that is set in the endpoint request contexts under the ServiceKey
+// key.
+const ServiceName = "openapi"
+
+// MethodNames lists the service method names as defined in the design. These
+// are the same values that are set in the endpoint request contexts under the
+// MethodKey key.
+var MethodNames = [0]string{}
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000000000000000000000000000000000000..62d7649dfb26f1442b3a886227699242abfd5017
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,31 @@
+module code.vereign.com/gaiax/tsa/signer
+
+go 1.17
+
+require (
+	code.vereign.com/gaiax/tsa/golib v0.0.0-20220603082703-12e9e3c06615
+	github.com/kelseyhightower/envconfig v1.4.0
+	go.uber.org/zap v1.21.0
+	goa.design/goa/v3 v3.7.6
+	golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
+)
+
+require (
+	github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 // indirect
+	github.com/dimfeld/httptreemux/v5 v5.4.0 // indirect
+	github.com/google/uuid v1.3.0 // indirect
+	github.com/gopherjs/gopherjs v1.17.2 // indirect
+	github.com/gorilla/websocket v1.5.0 // indirect
+	github.com/jtolds/gls v4.20.0+incompatible // indirect
+	github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d // indirect
+	github.com/sergi/go-diff v1.2.0 // indirect
+	github.com/smartystreets/assertions v1.13.0 // indirect
+	github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea // indirect
+	go.uber.org/atomic v1.7.0 // indirect
+	go.uber.org/multierr v1.6.0 // indirect
+	golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect
+	golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect
+	golang.org/x/tools v0.1.10 // indirect
+	golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df // indirect
+	gopkg.in/yaml.v3 v3.0.1 // indirect
+)
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000000000000000000000000000000000000..d70cc44cbacef9f08c2c617dd757820a9e2ab8ad
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,103 @@
+code.vereign.com/gaiax/tsa/golib v0.0.0-20220603082703-12e9e3c06615 h1:EdWAZfrfEzWiIo0iMkCcs4bPTW7gItLLgJSU5I143vI=
+code.vereign.com/gaiax/tsa/golib v0.0.0-20220603082703-12e9e3c06615/go.mod h1:bDorhOdL8/uRy56rvdBLWiRiOKlDjC5tQvpS5eN6wzo=
+github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
+github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
+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/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598 h1:MGKhKyiYrvMDZsmLR/+RGffQSXwEkXgfLSA08qDn9AI=
+github.com/dimfeld/httppath v0.0.0-20170720192232-ee938bf73598/go.mod h1:0FpDmbrt36utu8jEmeU05dPC9AB5tsLYVVi+ZHfyuwI=
+github.com/dimfeld/httptreemux/v5 v5.4.0 h1:IiHYEjh+A7pYbhWyjmGnj5HZK6gpOOvyBXCJ+BE8/Gs=
+github.com/dimfeld/httptreemux/v5 v5.4.0/go.mod h1:QeEylH57C0v3VO0tkKraVz9oD3Uu93CKPnTLbsidvSw=
+github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 h1:OL2d27ueTKnlQJoqLW2fc9pWYulFnJYLWzomGV7HqZo=
+github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
+github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/gopherjs/gopherjs v1.17.2 h1:fQnZVsXk8uxXIStYb0N4bGk7jeyTalG/wsZjQ25dO0g=
+github.com/gopherjs/gopherjs v1.17.2/go.mod h1:pRRIvn/QzFLrKfvEz3qUuEhtE/zLCWfreZ6J5gM2i+k=
+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/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
+github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
+github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8=
+github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg=
+github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+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/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d h1:Zj+PHjnhRYWBK6RqCDBcAhLXoi3TzC27Zad/Vn+gnVQ=
+github.com/manveru/faker v0.0.0-20171103152722-9fbc68a78c4d/go.mod h1:WZy8Q5coAB1zhY9AOBJP0O6J4BuDfbupUDavKY+I3+s=
+github.com/manveru/gobdd v0.0.0-20131210092515-f1a17fdd710b h1:3E44bLeN8uKYdfQqVQycPnaVviZdBLbizFhU49mtbe4=
+github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
+github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+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/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
+github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
+github.com/smartystreets/assertions v1.13.0 h1:Dx1kYM01xsSqKPno3aqLnrwac2LetPvN23diwyr69Qs=
+github.com/smartystreets/assertions v1.13.0/go.mod h1:wDmR7qL282YbGsPy6H/yAsesrxfxaaSlJazyFLYVFx8=
+github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+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.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea h1:CyhwejzVGvZ3Q2PSbQ4NRRYn+ZWv5eS1vlaEusT+bAI=
+github.com/zach-klippenstein/goregen v0.0.0-20160303162051-795b5e3961ea/go.mod h1:eNr558nEUjP8acGw8FFjTeWvSgU1stO7FAO6eknhHe4=
+go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw=
+go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI=
+go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ=
+go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4=
+go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
+go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8=
+go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw=
+goa.design/goa/v3 v3.7.6 h1:xwiPiwtcfm1GK4+GgxSJseHQWAqnoeeGdsv0YAquIEs=
+goa.design/goa/v3 v3.7.6/go.mod h1:Fc2yyfyUZbGUL7PYOioLdT9JVN7dbdhkDwo5v7xoKc8=
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
+golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
+golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o=
+golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
+golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
+golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/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-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k=
+golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
+golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
+golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
+golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20=
+golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
+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-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df h1:5Pf6pFKu98ODmgnpvkJ3kFUOQGGLIzLIkbzUHp47618=
+golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8=
+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 h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
+gopkg.in/yaml.v2 v2.2.2/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.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/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.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
+gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
diff --git a/goagen.sh b/goagen.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ec5a7dcdaefa14e0924a189e0fc118bc66ef9fdf
--- /dev/null
+++ b/goagen.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+set -e
+
+# preserve the value of GOFLAGS
+STORED_GOFLAGS=$(go env GOFLAGS)
+
+# force goa to not use vendored deps during generation
+go env -w GOFLAGS=-mod=mod
+
+# execute goa code generation
+goa gen code.vereign.com/gaiax/tsa/signer/design
+
+# restore the value of GOFLAGS
+go env -w GOFLAGS=$STORED_GOFLAGS
diff --git a/internal/config/config.go b/internal/config/config.go
new file mode 100644
index 0000000000000000000000000000000000000000..bdb25c11fa2d8aa3c2ea8c19adb6d93c15d65799
--- /dev/null
+++ b/internal/config/config.go
@@ -0,0 +1,17 @@
+package config
+
+import "time"
+
+type Config struct {
+	HTTP httpConfig
+
+	LogLevel string `envconfig:"LOG_LEVEL" default:"INFO"`
+}
+
+type httpConfig struct {
+	Host         string        `envconfig:"HTTP_HOST"`
+	Port         string        `envconfig:"HTTP_PORT" default:"8080"`
+	IdleTimeout  time.Duration `envconfig:"HTTP_IDLE_TIMEOUT" default:"120s"`
+	ReadTimeout  time.Duration `envconfig:"HTTP_READ_TIMEOUT" default:"10s"`
+	WriteTimeout time.Duration `envconfig:"HTTP_WRITE_TIMEOUT" default:"10s"`
+}
diff --git a/internal/service/error_response.go b/internal/service/error_response.go
new file mode 100644
index 0000000000000000000000000000000000000000..cbe74c6bb5180af664d93f5d00912f61ce8b85d3
--- /dev/null
+++ b/internal/service/error_response.go
@@ -0,0 +1,39 @@
+package service
+
+import (
+	goahttp "goa.design/goa/v3/http"
+	goa "goa.design/goa/v3/pkg"
+
+	"code.vereign.com/gaiax/tsa/golib/errors"
+)
+
+func NewErrorResponse(err error) goahttp.Statuser {
+	if err == nil {
+		return nil
+	}
+
+	var newerr *errors.Error
+	switch e := err.(type) {
+	case *errors.Error:
+		newerr = e
+	case *goa.ServiceError:
+		// Use goahttp.ErrorResponse to determine error kind
+		goaerr := goahttp.NewErrorResponse(e)
+		kind := errors.GetKind(goaerr.StatusCode())
+		newerr = &errors.Error{
+			ID:      e.ID,
+			Kind:    kind,
+			Message: e.Message,
+			Err:     e,
+		}
+	default:
+		newerr = &errors.Error{
+			ID:      errors.NewID(),
+			Kind:    errors.Internal,
+			Message: e.Error(),
+			Err:     e,
+		}
+	}
+
+	return newerr
+}
diff --git a/internal/service/health/service.go b/internal/service/health/service.go
new file mode 100644
index 0000000000000000000000000000000000000000..ffa6d9af3d67b8681ce5464bc555ca38aa6b801e
--- /dev/null
+++ b/internal/service/health/service.go
@@ -0,0 +1,17 @@
+package health
+
+import "context"
+
+type Service struct{}
+
+func New() *Service {
+	return &Service{}
+}
+
+func (s *Service) Liveness(ctx context.Context) error {
+	return nil
+}
+
+func (s *Service) Readiness(ctx context.Context) error {
+	return nil
+}
diff --git a/vendor/code.vereign.com/gaiax/tsa/golib/LICENSE b/vendor/code.vereign.com/gaiax/tsa/golib/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..8f9447e57d0f67d2744ad21a604d9c7f318f93dd
Binary files /dev/null and b/vendor/code.vereign.com/gaiax/tsa/golib/LICENSE differ
diff --git a/vendor/code.vereign.com/gaiax/tsa/golib/errors/errors.go b/vendor/code.vereign.com/gaiax/tsa/golib/errors/errors.go
new file mode 100644
index 0000000000000000000000000000000000000000..9bd1d17dd4269461f54ec5024a6a8ca0f0edb4ac
Binary files /dev/null and b/vendor/code.vereign.com/gaiax/tsa/golib/errors/errors.go differ
diff --git a/vendor/code.vereign.com/gaiax/tsa/golib/errors/shortid.go b/vendor/code.vereign.com/gaiax/tsa/golib/errors/shortid.go
new file mode 100644
index 0000000000000000000000000000000000000000..8fdf9c61a634c7f9bab630640eae576f75be924b
Binary files /dev/null and b/vendor/code.vereign.com/gaiax/tsa/golib/errors/shortid.go differ
diff --git a/vendor/code.vereign.com/gaiax/tsa/golib/graceful/graceful.go b/vendor/code.vereign.com/gaiax/tsa/golib/graceful/graceful.go
new file mode 100644
index 0000000000000000000000000000000000000000..7e7387d98d5546cf30d4b7c51240c9b64f6e5381
Binary files /dev/null and b/vendor/code.vereign.com/gaiax/tsa/golib/graceful/graceful.go differ
diff --git a/vendor/github.com/dimfeld/httppath/.travis.yml b/vendor/github.com/dimfeld/httppath/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..47ae9f711665d267746db5203bfa0acb6b9389e2
Binary files /dev/null and b/vendor/github.com/dimfeld/httppath/.travis.yml differ
diff --git a/vendor/github.com/dimfeld/httppath/LICENSE b/vendor/github.com/dimfeld/httppath/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..b829abc8a17fe98be0d64dc5ee01c2979598b377
Binary files /dev/null and b/vendor/github.com/dimfeld/httppath/LICENSE differ
diff --git a/vendor/github.com/dimfeld/httppath/README.md b/vendor/github.com/dimfeld/httppath/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..3248dd9041eadfe29de13e309b4ead24277f15ed
Binary files /dev/null and b/vendor/github.com/dimfeld/httppath/README.md differ
diff --git a/vendor/github.com/dimfeld/httppath/path.go b/vendor/github.com/dimfeld/httppath/path.go
new file mode 100644
index 0000000000000000000000000000000000000000..d800d01445a8e80a525e24e9aa73addbc1accca6
Binary files /dev/null and b/vendor/github.com/dimfeld/httppath/path.go differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/.gitignore b/vendor/github.com/dimfeld/httptreemux/v5/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..ba39ef7eb0588551a6f760d81dd62e2185618799
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/.gitignore differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/.travis.yml b/vendor/github.com/dimfeld/httptreemux/v5/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..9267a02e76aba6cbb3473be25ebb64a655b13cc5
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/.travis.yml differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/LICENSE b/vendor/github.com/dimfeld/httptreemux/v5/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..32c75c9b1ebf4dfedf8722ee05720d103b2b7b81
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/LICENSE differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/README.md b/vendor/github.com/dimfeld/httptreemux/v5/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..4dde584d3a3912a1aee31c55e3e89268947a4e25
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/README.md differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/context.go b/vendor/github.com/dimfeld/httptreemux/v5/context.go
new file mode 100644
index 0000000000000000000000000000000000000000..66e1bba05ab7a84ce6ef2a921238716aaf092d07
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/context.go differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/group.go b/vendor/github.com/dimfeld/httptreemux/v5/group.go
new file mode 100644
index 0000000000000000000000000000000000000000..b01c265a83f14a43e396d61da52485e887208a88
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/group.go differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/panichandler.go b/vendor/github.com/dimfeld/httptreemux/v5/panichandler.go
new file mode 100644
index 0000000000000000000000000000000000000000..cebb661bc4e3acb15b75482b6412cad5cf53e4d9
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/panichandler.go differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/path.go b/vendor/github.com/dimfeld/httptreemux/v5/path.go
new file mode 100644
index 0000000000000000000000000000000000000000..506ac38469f13ed7c0e07bcb668984b960d376cc
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/path.go differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/router.go b/vendor/github.com/dimfeld/httptreemux/v5/router.go
new file mode 100644
index 0000000000000000000000000000000000000000..5969d596d30944705d805d9158cda48d450eb020
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/router.go differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/tree.go b/vendor/github.com/dimfeld/httptreemux/v5/tree.go
new file mode 100644
index 0000000000000000000000000000000000000000..530d427848f6dd879b25fb68bda641682b91c03f
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/tree.go differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/treemux_16.go b/vendor/github.com/dimfeld/httptreemux/v5/treemux_16.go
new file mode 100644
index 0000000000000000000000000000000000000000..6bd5f2e97abe1e894750b8b122bf2f3aeaf8ce0f
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/treemux_16.go differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/treemux_17.go b/vendor/github.com/dimfeld/httptreemux/v5/treemux_17.go
new file mode 100644
index 0000000000000000000000000000000000000000..876c8d34c085f5437ab1b0dc835079833b22042d
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/treemux_17.go differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/unescape_17.go b/vendor/github.com/dimfeld/httptreemux/v5/unescape_17.go
new file mode 100644
index 0000000000000000000000000000000000000000..5d6d087875b3cf0c684f31009c98f418d570fe1d
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/unescape_17.go differ
diff --git a/vendor/github.com/dimfeld/httptreemux/v5/unescape_18.go b/vendor/github.com/dimfeld/httptreemux/v5/unescape_18.go
new file mode 100644
index 0000000000000000000000000000000000000000..254dfcdd7f112631f6163d49a6dea1b6c5924871
Binary files /dev/null and b/vendor/github.com/dimfeld/httptreemux/v5/unescape_18.go differ
diff --git a/vendor/github.com/google/uuid/.travis.yml b/vendor/github.com/google/uuid/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d8156a60ba9b3affe8a7ebd9c1a7ca3a06674e55
Binary files /dev/null and b/vendor/github.com/google/uuid/.travis.yml differ
diff --git a/vendor/github.com/google/uuid/CONTRIBUTING.md b/vendor/github.com/google/uuid/CONTRIBUTING.md
new file mode 100644
index 0000000000000000000000000000000000000000..04fdf09f136bbbb8687d537c1e5967800c0177a8
Binary files /dev/null and b/vendor/github.com/google/uuid/CONTRIBUTING.md differ
diff --git a/vendor/github.com/google/uuid/CONTRIBUTORS b/vendor/github.com/google/uuid/CONTRIBUTORS
new file mode 100644
index 0000000000000000000000000000000000000000..b4bb97f6bcd0d78febc158e7396f10353cdef312
Binary files /dev/null and b/vendor/github.com/google/uuid/CONTRIBUTORS differ
diff --git a/vendor/github.com/google/uuid/LICENSE b/vendor/github.com/google/uuid/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..5dc68268d900581915a7bfdc1f2be75cd503dd9e
Binary files /dev/null and b/vendor/github.com/google/uuid/LICENSE differ
diff --git a/vendor/github.com/google/uuid/README.md b/vendor/github.com/google/uuid/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..f765a46f9150130c9ced6c414b13b0b5b6f735f6
Binary files /dev/null and b/vendor/github.com/google/uuid/README.md differ
diff --git a/vendor/github.com/google/uuid/dce.go b/vendor/github.com/google/uuid/dce.go
new file mode 100644
index 0000000000000000000000000000000000000000..fa820b9d3092b433238026b451eca869387d91fb
Binary files /dev/null and b/vendor/github.com/google/uuid/dce.go differ
diff --git a/vendor/github.com/google/uuid/doc.go b/vendor/github.com/google/uuid/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..5b8a4b9af8ce30230b0541d1ab3d2aa63d637739
Binary files /dev/null and b/vendor/github.com/google/uuid/doc.go differ
diff --git a/vendor/github.com/google/uuid/hash.go b/vendor/github.com/google/uuid/hash.go
new file mode 100644
index 0000000000000000000000000000000000000000..b404f4bec274229d769326fd320d8464acdc98fe
Binary files /dev/null and b/vendor/github.com/google/uuid/hash.go differ
diff --git a/vendor/github.com/google/uuid/marshal.go b/vendor/github.com/google/uuid/marshal.go
new file mode 100644
index 0000000000000000000000000000000000000000..14bd34072b64d2c9cd0491d00454e593af99e1e2
Binary files /dev/null and b/vendor/github.com/google/uuid/marshal.go differ
diff --git a/vendor/github.com/google/uuid/node.go b/vendor/github.com/google/uuid/node.go
new file mode 100644
index 0000000000000000000000000000000000000000..d651a2b0619fa44b7f24cdaf731197e6c1023863
Binary files /dev/null and b/vendor/github.com/google/uuid/node.go differ
diff --git a/vendor/github.com/google/uuid/node_js.go b/vendor/github.com/google/uuid/node_js.go
new file mode 100644
index 0000000000000000000000000000000000000000..24b78edc90710dbc334143facc76732bc1f8fa6f
Binary files /dev/null and b/vendor/github.com/google/uuid/node_js.go differ
diff --git a/vendor/github.com/google/uuid/node_net.go b/vendor/github.com/google/uuid/node_net.go
new file mode 100644
index 0000000000000000000000000000000000000000..0cbbcddbd6e81da612534338c786a4e111bc0a04
Binary files /dev/null and b/vendor/github.com/google/uuid/node_net.go differ
diff --git a/vendor/github.com/google/uuid/null.go b/vendor/github.com/google/uuid/null.go
new file mode 100644
index 0000000000000000000000000000000000000000..d7fcbf28651697b00add519d8b4402a5ab46ffc2
Binary files /dev/null and b/vendor/github.com/google/uuid/null.go differ
diff --git a/vendor/github.com/google/uuid/sql.go b/vendor/github.com/google/uuid/sql.go
new file mode 100644
index 0000000000000000000000000000000000000000..2e02ec06c0121d1c82a8b07275091549f9a0c950
Binary files /dev/null and b/vendor/github.com/google/uuid/sql.go differ
diff --git a/vendor/github.com/google/uuid/time.go b/vendor/github.com/google/uuid/time.go
new file mode 100644
index 0000000000000000000000000000000000000000..e6ef06cdc87aab2c0f71612088cd9b05c4552360
Binary files /dev/null and b/vendor/github.com/google/uuid/time.go differ
diff --git a/vendor/github.com/google/uuid/util.go b/vendor/github.com/google/uuid/util.go
new file mode 100644
index 0000000000000000000000000000000000000000..5ea6c737806e68a6d0457e65d97bb3414cb22953
Binary files /dev/null and b/vendor/github.com/google/uuid/util.go differ
diff --git a/vendor/github.com/google/uuid/uuid.go b/vendor/github.com/google/uuid/uuid.go
new file mode 100644
index 0000000000000000000000000000000000000000..a57207aeb6fd844cc3265727d406a3986ec5d6ff
Binary files /dev/null and b/vendor/github.com/google/uuid/uuid.go differ
diff --git a/vendor/github.com/google/uuid/version1.go b/vendor/github.com/google/uuid/version1.go
new file mode 100644
index 0000000000000000000000000000000000000000..463109629eee180e87507373a3e957e72c34f179
Binary files /dev/null and b/vendor/github.com/google/uuid/version1.go differ
diff --git a/vendor/github.com/google/uuid/version4.go b/vendor/github.com/google/uuid/version4.go
new file mode 100644
index 0000000000000000000000000000000000000000..7697802e4d16b255e7ea22a86071cfbe9af6aa39
Binary files /dev/null and b/vendor/github.com/google/uuid/version4.go differ
diff --git a/vendor/github.com/gorilla/websocket/.gitignore b/vendor/github.com/gorilla/websocket/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..cd3fcd1ef72a7f780f5b916369a9fff458876ae9
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/.gitignore differ
diff --git a/vendor/github.com/gorilla/websocket/AUTHORS b/vendor/github.com/gorilla/websocket/AUTHORS
new file mode 100644
index 0000000000000000000000000000000000000000..1931f400682c373b02db547c1fdc4315b804b2eb
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/AUTHORS differ
diff --git a/vendor/github.com/gorilla/websocket/LICENSE b/vendor/github.com/gorilla/websocket/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..9171c972252257cf416925ddff4be6cb73973a82
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/LICENSE differ
diff --git a/vendor/github.com/gorilla/websocket/README.md b/vendor/github.com/gorilla/websocket/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..2517a28715facc76c62c39808092c03fcd108bc7
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/README.md differ
diff --git a/vendor/github.com/gorilla/websocket/client.go b/vendor/github.com/gorilla/websocket/client.go
new file mode 100644
index 0000000000000000000000000000000000000000..2efd83555d375b7dcb6ab19071c89eff4aa8f8ce
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/client.go differ
diff --git a/vendor/github.com/gorilla/websocket/compression.go b/vendor/github.com/gorilla/websocket/compression.go
new file mode 100644
index 0000000000000000000000000000000000000000..813ffb1e84336da415256244366e09bcd65b6765
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/compression.go differ
diff --git a/vendor/github.com/gorilla/websocket/conn.go b/vendor/github.com/gorilla/websocket/conn.go
new file mode 100644
index 0000000000000000000000000000000000000000..331eebc85009aba4aa029ccf2e218141839d448f
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/conn.go differ
diff --git a/vendor/github.com/gorilla/websocket/doc.go b/vendor/github.com/gorilla/websocket/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..8db0cef95a29ac123a97c0a573e81ab89d930a6e
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/doc.go differ
diff --git a/vendor/github.com/gorilla/websocket/join.go b/vendor/github.com/gorilla/websocket/join.go
new file mode 100644
index 0000000000000000000000000000000000000000..c64f8c82901a3e17964df24f9b45151d7e6a5deb
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/join.go differ
diff --git a/vendor/github.com/gorilla/websocket/json.go b/vendor/github.com/gorilla/websocket/json.go
new file mode 100644
index 0000000000000000000000000000000000000000..dc2c1f6415ff8714c333f4be363b9be0756812dc
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/json.go differ
diff --git a/vendor/github.com/gorilla/websocket/mask.go b/vendor/github.com/gorilla/websocket/mask.go
new file mode 100644
index 0000000000000000000000000000000000000000..d0742bf2a5517669b75ca7d33fb20e7c8b77a1cc
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/mask.go differ
diff --git a/vendor/github.com/gorilla/websocket/mask_safe.go b/vendor/github.com/gorilla/websocket/mask_safe.go
new file mode 100644
index 0000000000000000000000000000000000000000..36250ca7c47eef23da8725e7ec39c49a74ab9f43
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/mask_safe.go differ
diff --git a/vendor/github.com/gorilla/websocket/prepared.go b/vendor/github.com/gorilla/websocket/prepared.go
new file mode 100644
index 0000000000000000000000000000000000000000..c854225e9676fa71c7e1d7e33b1c23a6f138b5af
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/prepared.go differ
diff --git a/vendor/github.com/gorilla/websocket/proxy.go b/vendor/github.com/gorilla/websocket/proxy.go
new file mode 100644
index 0000000000000000000000000000000000000000..e0f466b72fbba37ae29eca5334dbf623542ecfc9
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/proxy.go differ
diff --git a/vendor/github.com/gorilla/websocket/server.go b/vendor/github.com/gorilla/websocket/server.go
new file mode 100644
index 0000000000000000000000000000000000000000..24d53b38abededecbfca6e3d0dff02f67742faef
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/server.go differ
diff --git a/vendor/github.com/gorilla/websocket/tls_handshake.go b/vendor/github.com/gorilla/websocket/tls_handshake.go
new file mode 100644
index 0000000000000000000000000000000000000000..a62b68ccb11e34561b04c7919d7f9badd47c0353
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/tls_handshake.go differ
diff --git a/vendor/github.com/gorilla/websocket/tls_handshake_116.go b/vendor/github.com/gorilla/websocket/tls_handshake_116.go
new file mode 100644
index 0000000000000000000000000000000000000000..e1b2b44f6e6c8cb3a188dfa8f9db6fe3253b262f
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/tls_handshake_116.go differ
diff --git a/vendor/github.com/gorilla/websocket/util.go b/vendor/github.com/gorilla/websocket/util.go
new file mode 100644
index 0000000000000000000000000000000000000000..7bf2f66c6747d5fd1d08e652e7df747fb229f5bd
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/util.go differ
diff --git a/vendor/github.com/gorilla/websocket/x_net_proxy.go b/vendor/github.com/gorilla/websocket/x_net_proxy.go
new file mode 100644
index 0000000000000000000000000000000000000000..2e668f6b8821e4129856122630dc5691e2f1612a
Binary files /dev/null and b/vendor/github.com/gorilla/websocket/x_net_proxy.go differ
diff --git a/vendor/github.com/kelseyhightower/envconfig/.travis.yml b/vendor/github.com/kelseyhightower/envconfig/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..04b97aed6164e234e22e828f8cc7035ace0eb72d
Binary files /dev/null and b/vendor/github.com/kelseyhightower/envconfig/.travis.yml differ
diff --git a/vendor/github.com/kelseyhightower/envconfig/LICENSE b/vendor/github.com/kelseyhightower/envconfig/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..4bfa7a84d818dab2b55e3eaadfee93bafaa78528
Binary files /dev/null and b/vendor/github.com/kelseyhightower/envconfig/LICENSE differ
diff --git a/vendor/github.com/kelseyhightower/envconfig/MAINTAINERS b/vendor/github.com/kelseyhightower/envconfig/MAINTAINERS
new file mode 100644
index 0000000000000000000000000000000000000000..6527a9f2cc274d6c3802e2b17bf6598b96f0b54b
Binary files /dev/null and b/vendor/github.com/kelseyhightower/envconfig/MAINTAINERS differ
diff --git a/vendor/github.com/kelseyhightower/envconfig/README.md b/vendor/github.com/kelseyhightower/envconfig/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..33408d645e4bd2420646a82a0152139a7e9b7e4c
Binary files /dev/null and b/vendor/github.com/kelseyhightower/envconfig/README.md differ
diff --git a/vendor/github.com/kelseyhightower/envconfig/doc.go b/vendor/github.com/kelseyhightower/envconfig/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..f28561cd1cbc444781882191f6a1196e60bd5c01
Binary files /dev/null and b/vendor/github.com/kelseyhightower/envconfig/doc.go differ
diff --git a/vendor/github.com/kelseyhightower/envconfig/env_os.go b/vendor/github.com/kelseyhightower/envconfig/env_os.go
new file mode 100644
index 0000000000000000000000000000000000000000..eba07a6c6130ead3af5973a7857dd0925eab348b
Binary files /dev/null and b/vendor/github.com/kelseyhightower/envconfig/env_os.go differ
diff --git a/vendor/github.com/kelseyhightower/envconfig/env_syscall.go b/vendor/github.com/kelseyhightower/envconfig/env_syscall.go
new file mode 100644
index 0000000000000000000000000000000000000000..425454008077783af073113e96d4b381fff6a78e
Binary files /dev/null and b/vendor/github.com/kelseyhightower/envconfig/env_syscall.go differ
diff --git a/vendor/github.com/kelseyhightower/envconfig/envconfig.go b/vendor/github.com/kelseyhightower/envconfig/envconfig.go
new file mode 100644
index 0000000000000000000000000000000000000000..3f16108db8a465627d2d9b7cf707e6fefa063087
Binary files /dev/null and b/vendor/github.com/kelseyhightower/envconfig/envconfig.go differ
diff --git a/vendor/github.com/kelseyhightower/envconfig/usage.go b/vendor/github.com/kelseyhightower/envconfig/usage.go
new file mode 100644
index 0000000000000000000000000000000000000000..1e6d0a8f367c4ab2aa1cb87b8b23dd1b85496244
Binary files /dev/null and b/vendor/github.com/kelseyhightower/envconfig/usage.go differ
diff --git a/vendor/github.com/manveru/faker/.travis.yml b/vendor/github.com/manveru/faker/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b8e958969e23b8ccba8a28aeff8126e3a91ee3c4
Binary files /dev/null and b/vendor/github.com/manveru/faker/.travis.yml differ
diff --git a/vendor/github.com/manveru/faker/LICENSE b/vendor/github.com/manveru/faker/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..7bbef04b78059c58a95bab4dbfddaecac4010c82
Binary files /dev/null and b/vendor/github.com/manveru/faker/LICENSE differ
diff --git a/vendor/github.com/manveru/faker/README.md b/vendor/github.com/manveru/faker/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..573cb577d3aa0ce82d533e789d7885b191e3356f
Binary files /dev/null and b/vendor/github.com/manveru/faker/README.md differ
diff --git a/vendor/github.com/manveru/faker/dict.go b/vendor/github.com/manveru/faker/dict.go
new file mode 100644
index 0000000000000000000000000000000000000000..05234f387895b67380cc6c8a1ca432db5ce06cf7
Binary files /dev/null and b/vendor/github.com/manveru/faker/dict.go differ
diff --git a/vendor/github.com/manveru/faker/faker.go b/vendor/github.com/manveru/faker/faker.go
new file mode 100644
index 0000000000000000000000000000000000000000..344f6d5933f1176c7be3d4604b4cc99ff422307f
Binary files /dev/null and b/vendor/github.com/manveru/faker/faker.go differ
diff --git a/vendor/github.com/sergi/go-diff/AUTHORS b/vendor/github.com/sergi/go-diff/AUTHORS
new file mode 100644
index 0000000000000000000000000000000000000000..2d7bb2bf5728eb81f787fe0193641f8eb3a4c5cf
Binary files /dev/null and b/vendor/github.com/sergi/go-diff/AUTHORS differ
diff --git a/vendor/github.com/sergi/go-diff/CONTRIBUTORS b/vendor/github.com/sergi/go-diff/CONTRIBUTORS
new file mode 100644
index 0000000000000000000000000000000000000000..369e3d55190a028e8ff4b2a74f4e64a3945d57e4
Binary files /dev/null and b/vendor/github.com/sergi/go-diff/CONTRIBUTORS differ
diff --git a/vendor/github.com/sergi/go-diff/LICENSE b/vendor/github.com/sergi/go-diff/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..937942c2b2c4cf2c0b3043210ac71e594ee4f5df
Binary files /dev/null and b/vendor/github.com/sergi/go-diff/LICENSE differ
diff --git a/vendor/github.com/sergi/go-diff/diffmatchpatch/diff.go b/vendor/github.com/sergi/go-diff/diffmatchpatch/diff.go
new file mode 100644
index 0000000000000000000000000000000000000000..2a9f2dc3b94f82847591ae51443841cb0c4513fa
Binary files /dev/null and b/vendor/github.com/sergi/go-diff/diffmatchpatch/diff.go differ
diff --git a/vendor/github.com/sergi/go-diff/diffmatchpatch/diffmatchpatch.go b/vendor/github.com/sergi/go-diff/diffmatchpatch/diffmatchpatch.go
new file mode 100644
index 0000000000000000000000000000000000000000..d3acc32ce13a0439319b69db12c6f74d9854e4f1
Binary files /dev/null and b/vendor/github.com/sergi/go-diff/diffmatchpatch/diffmatchpatch.go differ
diff --git a/vendor/github.com/sergi/go-diff/diffmatchpatch/match.go b/vendor/github.com/sergi/go-diff/diffmatchpatch/match.go
new file mode 100644
index 0000000000000000000000000000000000000000..17374e109fef2d55431fe4a5e08a8b5259d203a7
Binary files /dev/null and b/vendor/github.com/sergi/go-diff/diffmatchpatch/match.go differ
diff --git a/vendor/github.com/sergi/go-diff/diffmatchpatch/mathutil.go b/vendor/github.com/sergi/go-diff/diffmatchpatch/mathutil.go
new file mode 100644
index 0000000000000000000000000000000000000000..aed242bc6e763e7bcea7bd139700e82753fc719d
Binary files /dev/null and b/vendor/github.com/sergi/go-diff/diffmatchpatch/mathutil.go differ
diff --git a/vendor/github.com/sergi/go-diff/diffmatchpatch/operation_string.go b/vendor/github.com/sergi/go-diff/diffmatchpatch/operation_string.go
new file mode 100644
index 0000000000000000000000000000000000000000..533ec0da7b34474b9e401b980b4450da77322cf4
Binary files /dev/null and b/vendor/github.com/sergi/go-diff/diffmatchpatch/operation_string.go differ
diff --git a/vendor/github.com/sergi/go-diff/diffmatchpatch/patch.go b/vendor/github.com/sergi/go-diff/diffmatchpatch/patch.go
new file mode 100644
index 0000000000000000000000000000000000000000..0dbe3bdd7decfeb8e11db187166d991cba9330eb
Binary files /dev/null and b/vendor/github.com/sergi/go-diff/diffmatchpatch/patch.go differ
diff --git a/vendor/github.com/sergi/go-diff/diffmatchpatch/stringutil.go b/vendor/github.com/sergi/go-diff/diffmatchpatch/stringutil.go
new file mode 100644
index 0000000000000000000000000000000000000000..44c43595478161985cfad44e476862b41be6b355
Binary files /dev/null and b/vendor/github.com/sergi/go-diff/diffmatchpatch/stringutil.go differ
diff --git a/vendor/github.com/zach-klippenstein/goregen/.gitignore b/vendor/github.com/zach-klippenstein/goregen/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..54ad1b4724dc08650185bb89c3aed96dd479330a
Binary files /dev/null and b/vendor/github.com/zach-klippenstein/goregen/.gitignore differ
diff --git a/vendor/github.com/zach-klippenstein/goregen/.travis.yml b/vendor/github.com/zach-klippenstein/goregen/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fcee97a2b98c238d0c645f85b8c47cb2f4c55415
Binary files /dev/null and b/vendor/github.com/zach-klippenstein/goregen/.travis.yml differ
diff --git a/vendor/github.com/zach-klippenstein/goregen/LICENSE.txt b/vendor/github.com/zach-klippenstein/goregen/LICENSE.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8dada3edaf50dbc082c9a125058f25def75e625a
Binary files /dev/null and b/vendor/github.com/zach-klippenstein/goregen/LICENSE.txt differ
diff --git a/vendor/github.com/zach-klippenstein/goregen/README.md b/vendor/github.com/zach-klippenstein/goregen/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..89b3cec20febb08a82169092c5a483ad0a36d567
Binary files /dev/null and b/vendor/github.com/zach-klippenstein/goregen/README.md differ
diff --git a/vendor/github.com/zach-klippenstein/goregen/char_class.go b/vendor/github.com/zach-klippenstein/goregen/char_class.go
new file mode 100644
index 0000000000000000000000000000000000000000..b5b9014baef9f2f988fd84fd27b538ba706433b9
Binary files /dev/null and b/vendor/github.com/zach-klippenstein/goregen/char_class.go differ
diff --git a/vendor/github.com/zach-klippenstein/goregen/generator_error.go b/vendor/github.com/zach-klippenstein/goregen/generator_error.go
new file mode 100644
index 0000000000000000000000000000000000000000..4536388dda85d3d964dcaae4e6215a1b4a4b1238
Binary files /dev/null and b/vendor/github.com/zach-klippenstein/goregen/generator_error.go differ
diff --git a/vendor/github.com/zach-klippenstein/goregen/internal_generator.go b/vendor/github.com/zach-klippenstein/goregen/internal_generator.go
new file mode 100644
index 0000000000000000000000000000000000000000..cfd1652b11afcbfa92855773ebae393d4fb0aa3d
Binary files /dev/null and b/vendor/github.com/zach-klippenstein/goregen/internal_generator.go differ
diff --git a/vendor/github.com/zach-klippenstein/goregen/regen.go b/vendor/github.com/zach-klippenstein/goregen/regen.go
new file mode 100644
index 0000000000000000000000000000000000000000..d80034b18091749f47f2b0bd5810f721df45a3e4
Binary files /dev/null and b/vendor/github.com/zach-klippenstein/goregen/regen.go differ
diff --git a/vendor/github.com/zach-klippenstein/goregen/regexp_format.go b/vendor/github.com/zach-klippenstein/goregen/regexp_format.go
new file mode 100644
index 0000000000000000000000000000000000000000..3bc8e000bd4a172f8b479dcdd9b9f5e38183332a
Binary files /dev/null and b/vendor/github.com/zach-klippenstein/goregen/regexp_format.go differ
diff --git a/vendor/github.com/zach-klippenstein/goregen/rng.go b/vendor/github.com/zach-klippenstein/goregen/rng.go
new file mode 100644
index 0000000000000000000000000000000000000000..74194b25e0367c05c00c1561f760966bd27d76c7
Binary files /dev/null and b/vendor/github.com/zach-klippenstein/goregen/rng.go differ
diff --git a/vendor/go.uber.org/atomic/.codecov.yml b/vendor/go.uber.org/atomic/.codecov.yml
new file mode 100644
index 0000000000000000000000000000000000000000..571116cc39c64305dc35d67d87bbd1a4cfb3b752
Binary files /dev/null and b/vendor/go.uber.org/atomic/.codecov.yml differ
diff --git a/vendor/go.uber.org/atomic/.gitignore b/vendor/go.uber.org/atomic/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..c3fa253893f062214c0843010e64ca58d93e8024
Binary files /dev/null and b/vendor/go.uber.org/atomic/.gitignore differ
diff --git a/vendor/go.uber.org/atomic/.travis.yml b/vendor/go.uber.org/atomic/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..13d0a4f25404de04c800cc617e837e09756bf1ac
Binary files /dev/null and b/vendor/go.uber.org/atomic/.travis.yml differ
diff --git a/vendor/go.uber.org/atomic/CHANGELOG.md b/vendor/go.uber.org/atomic/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..24c0274dc3215643434dc3479f86e45f1a8fe121
Binary files /dev/null and b/vendor/go.uber.org/atomic/CHANGELOG.md differ
diff --git a/vendor/go.uber.org/atomic/LICENSE.txt b/vendor/go.uber.org/atomic/LICENSE.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8765c9fbc61911391a9909ea43a18077228d2486
Binary files /dev/null and b/vendor/go.uber.org/atomic/LICENSE.txt differ
diff --git a/vendor/go.uber.org/atomic/Makefile b/vendor/go.uber.org/atomic/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..1b1376d42533e20a475796849cb0029d8bcb4fc6
Binary files /dev/null and b/vendor/go.uber.org/atomic/Makefile differ
diff --git a/vendor/go.uber.org/atomic/README.md b/vendor/go.uber.org/atomic/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..ade0c20f16b4aa8d1740fdf839460ddef9f86a3b
Binary files /dev/null and b/vendor/go.uber.org/atomic/README.md differ
diff --git a/vendor/go.uber.org/atomic/bool.go b/vendor/go.uber.org/atomic/bool.go
new file mode 100644
index 0000000000000000000000000000000000000000..9cf1914b1f826cb1bfb1619fbcf3f10e3f870a54
Binary files /dev/null and b/vendor/go.uber.org/atomic/bool.go differ
diff --git a/vendor/go.uber.org/atomic/bool_ext.go b/vendor/go.uber.org/atomic/bool_ext.go
new file mode 100644
index 0000000000000000000000000000000000000000..c7bf7a827a81ceefbf31ff74aef6c51103c7f92e
Binary files /dev/null and b/vendor/go.uber.org/atomic/bool_ext.go differ
diff --git a/vendor/go.uber.org/atomic/doc.go b/vendor/go.uber.org/atomic/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..ae7390ee6887e32782e88baf1a0203b42f7e6a83
Binary files /dev/null and b/vendor/go.uber.org/atomic/doc.go differ
diff --git a/vendor/go.uber.org/atomic/duration.go b/vendor/go.uber.org/atomic/duration.go
new file mode 100644
index 0000000000000000000000000000000000000000..027cfcb20bf526af09124c05a1d62ac80efe6bce
Binary files /dev/null and b/vendor/go.uber.org/atomic/duration.go differ
diff --git a/vendor/go.uber.org/atomic/duration_ext.go b/vendor/go.uber.org/atomic/duration_ext.go
new file mode 100644
index 0000000000000000000000000000000000000000..6273b66bd659728da5ebb1a3d0affa0c2e9c4166
Binary files /dev/null and b/vendor/go.uber.org/atomic/duration_ext.go differ
diff --git a/vendor/go.uber.org/atomic/error.go b/vendor/go.uber.org/atomic/error.go
new file mode 100644
index 0000000000000000000000000000000000000000..a6166fbea01e12c1f0cc3450a5e22d57a5c19e28
Binary files /dev/null and b/vendor/go.uber.org/atomic/error.go differ
diff --git a/vendor/go.uber.org/atomic/error_ext.go b/vendor/go.uber.org/atomic/error_ext.go
new file mode 100644
index 0000000000000000000000000000000000000000..ffe0be21cb0174a02da635fc1505fb88026659a2
Binary files /dev/null and b/vendor/go.uber.org/atomic/error_ext.go differ
diff --git a/vendor/go.uber.org/atomic/float64.go b/vendor/go.uber.org/atomic/float64.go
new file mode 100644
index 0000000000000000000000000000000000000000..0719060207da490c74c8ae2d5f7fef1adda43023
Binary files /dev/null and b/vendor/go.uber.org/atomic/float64.go differ
diff --git a/vendor/go.uber.org/atomic/float64_ext.go b/vendor/go.uber.org/atomic/float64_ext.go
new file mode 100644
index 0000000000000000000000000000000000000000..927b1add74e51ffed8a0265ced6b24a72d95aaff
Binary files /dev/null and b/vendor/go.uber.org/atomic/float64_ext.go differ
diff --git a/vendor/go.uber.org/atomic/gen.go b/vendor/go.uber.org/atomic/gen.go
new file mode 100644
index 0000000000000000000000000000000000000000..50d6b248588fa8a1f72ae3a1230e57870fbfce92
Binary files /dev/null and b/vendor/go.uber.org/atomic/gen.go differ
diff --git a/vendor/go.uber.org/atomic/int32.go b/vendor/go.uber.org/atomic/int32.go
new file mode 100644
index 0000000000000000000000000000000000000000..18ae56493ee985c94adec4eb47760e10632333c6
Binary files /dev/null and b/vendor/go.uber.org/atomic/int32.go differ
diff --git a/vendor/go.uber.org/atomic/int64.go b/vendor/go.uber.org/atomic/int64.go
new file mode 100644
index 0000000000000000000000000000000000000000..2bcbbfaa953234a5a7bfe4cc4dda552556dd276d
Binary files /dev/null and b/vendor/go.uber.org/atomic/int64.go differ
diff --git a/vendor/go.uber.org/atomic/nocmp.go b/vendor/go.uber.org/atomic/nocmp.go
new file mode 100644
index 0000000000000000000000000000000000000000..a8201cb4a18ef74d9993709fa2bef07008556812
Binary files /dev/null and b/vendor/go.uber.org/atomic/nocmp.go differ
diff --git a/vendor/go.uber.org/atomic/string.go b/vendor/go.uber.org/atomic/string.go
new file mode 100644
index 0000000000000000000000000000000000000000..225b7a2be0aa1eb557945d5c21c0493230c1c6fb
Binary files /dev/null and b/vendor/go.uber.org/atomic/string.go differ
diff --git a/vendor/go.uber.org/atomic/string_ext.go b/vendor/go.uber.org/atomic/string_ext.go
new file mode 100644
index 0000000000000000000000000000000000000000..3a9558213d0dcdc01dfeb724d6ba6d0efe54cb59
Binary files /dev/null and b/vendor/go.uber.org/atomic/string_ext.go differ
diff --git a/vendor/go.uber.org/atomic/uint32.go b/vendor/go.uber.org/atomic/uint32.go
new file mode 100644
index 0000000000000000000000000000000000000000..a973aba1a60b451a3b64b3361c328463ba250c9e
Binary files /dev/null and b/vendor/go.uber.org/atomic/uint32.go differ
diff --git a/vendor/go.uber.org/atomic/uint64.go b/vendor/go.uber.org/atomic/uint64.go
new file mode 100644
index 0000000000000000000000000000000000000000..3b6c71fd5a3721916b12643a192a99a4cca8dc36
Binary files /dev/null and b/vendor/go.uber.org/atomic/uint64.go differ
diff --git a/vendor/go.uber.org/atomic/value.go b/vendor/go.uber.org/atomic/value.go
new file mode 100644
index 0000000000000000000000000000000000000000..671f3a382475b9e7981501a7c9a14ff4de8affb3
Binary files /dev/null and b/vendor/go.uber.org/atomic/value.go differ
diff --git a/vendor/go.uber.org/multierr/.codecov.yml b/vendor/go.uber.org/multierr/.codecov.yml
new file mode 100644
index 0000000000000000000000000000000000000000..6d4d1be7b57453cf7e8a10f9189c72503e0e9706
Binary files /dev/null and b/vendor/go.uber.org/multierr/.codecov.yml differ
diff --git a/vendor/go.uber.org/multierr/.gitignore b/vendor/go.uber.org/multierr/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..b9a05e3da0d2c462aa0459f8c145ddf301ee29a5
Binary files /dev/null and b/vendor/go.uber.org/multierr/.gitignore differ
diff --git a/vendor/go.uber.org/multierr/.travis.yml b/vendor/go.uber.org/multierr/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8636ab42ad14187003fac4860ce569147e06dd03
Binary files /dev/null and b/vendor/go.uber.org/multierr/.travis.yml differ
diff --git a/vendor/go.uber.org/multierr/CHANGELOG.md b/vendor/go.uber.org/multierr/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..6f1db9ef4a0a4facfe23a1ba9de3fadfd5c82a61
Binary files /dev/null and b/vendor/go.uber.org/multierr/CHANGELOG.md differ
diff --git a/vendor/go.uber.org/multierr/LICENSE.txt b/vendor/go.uber.org/multierr/LICENSE.txt
new file mode 100644
index 0000000000000000000000000000000000000000..858e02475f1639e0a744dae666f42c810cdf5931
Binary files /dev/null and b/vendor/go.uber.org/multierr/LICENSE.txt differ
diff --git a/vendor/go.uber.org/multierr/Makefile b/vendor/go.uber.org/multierr/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..316004400b898728e3618144bc2e9934e2168604
Binary files /dev/null and b/vendor/go.uber.org/multierr/Makefile differ
diff --git a/vendor/go.uber.org/multierr/README.md b/vendor/go.uber.org/multierr/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..751bd65e58115216b500fbd1e7aac707574e99ba
Binary files /dev/null and b/vendor/go.uber.org/multierr/README.md differ
diff --git a/vendor/go.uber.org/multierr/error.go b/vendor/go.uber.org/multierr/error.go
new file mode 100644
index 0000000000000000000000000000000000000000..5c9b67d5379ef4b007bf7aba3ed300b34cd32153
Binary files /dev/null and b/vendor/go.uber.org/multierr/error.go differ
diff --git a/vendor/go.uber.org/multierr/glide.yaml b/vendor/go.uber.org/multierr/glide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6ef084ec242f24f49b6e5db10f33f9bc98378306
Binary files /dev/null and b/vendor/go.uber.org/multierr/glide.yaml differ
diff --git a/vendor/go.uber.org/multierr/go113.go b/vendor/go.uber.org/multierr/go113.go
new file mode 100644
index 0000000000000000000000000000000000000000..264b0eac0ddcf613a5df496283c3b47ec2b8c7f3
Binary files /dev/null and b/vendor/go.uber.org/multierr/go113.go differ
diff --git a/vendor/go.uber.org/zap/.codecov.yml b/vendor/go.uber.org/zap/.codecov.yml
new file mode 100644
index 0000000000000000000000000000000000000000..8e5ca7d3e2b2c9e150793628a85bbbc996c1a81f
Binary files /dev/null and b/vendor/go.uber.org/zap/.codecov.yml differ
diff --git a/vendor/go.uber.org/zap/.gitignore b/vendor/go.uber.org/zap/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..da9d9d00b47404f4294e00466a94af21caf7dc04
Binary files /dev/null and b/vendor/go.uber.org/zap/.gitignore differ
diff --git a/vendor/go.uber.org/zap/.readme.tmpl b/vendor/go.uber.org/zap/.readme.tmpl
new file mode 100644
index 0000000000000000000000000000000000000000..92aa65d660b6f4cb5f6326e20300c2ba5ea1fdc9
Binary files /dev/null and b/vendor/go.uber.org/zap/.readme.tmpl differ
diff --git a/vendor/go.uber.org/zap/CHANGELOG.md b/vendor/go.uber.org/zap/CHANGELOG.md
new file mode 100644
index 0000000000000000000000000000000000000000..1793b08c89abb6ddabfdf0777e420d4a67fa2da8
Binary files /dev/null and b/vendor/go.uber.org/zap/CHANGELOG.md differ
diff --git a/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md b/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000000000000000000000000000000000000..e327d9aa5cd0a1ab2a9f3d602f2ecefa6e7f72c1
Binary files /dev/null and b/vendor/go.uber.org/zap/CODE_OF_CONDUCT.md differ
diff --git a/vendor/go.uber.org/zap/CONTRIBUTING.md b/vendor/go.uber.org/zap/CONTRIBUTING.md
new file mode 100644
index 0000000000000000000000000000000000000000..5cd965687138cb728cd3157e1402c1e1e71ce9b9
Binary files /dev/null and b/vendor/go.uber.org/zap/CONTRIBUTING.md differ
diff --git a/vendor/go.uber.org/zap/FAQ.md b/vendor/go.uber.org/zap/FAQ.md
new file mode 100644
index 0000000000000000000000000000000000000000..b183b20bc13926872f592a036d269d3e855bd95e
Binary files /dev/null and b/vendor/go.uber.org/zap/FAQ.md differ
diff --git a/vendor/go.uber.org/zap/LICENSE.txt b/vendor/go.uber.org/zap/LICENSE.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6652bed45f40e900136465789e73c64671e35b88
Binary files /dev/null and b/vendor/go.uber.org/zap/LICENSE.txt differ
diff --git a/vendor/go.uber.org/zap/Makefile b/vendor/go.uber.org/zap/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..9b1bc3b0e1d891f34507d5454a00642942c66561
Binary files /dev/null and b/vendor/go.uber.org/zap/Makefile differ
diff --git a/vendor/go.uber.org/zap/README.md b/vendor/go.uber.org/zap/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..9c9dfe1ed7ba6e868debb911515b5882d2790b33
Binary files /dev/null and b/vendor/go.uber.org/zap/README.md differ
diff --git a/vendor/go.uber.org/zap/array.go b/vendor/go.uber.org/zap/array.go
new file mode 100644
index 0000000000000000000000000000000000000000..5be3704a3e11e09d228f80dfa9ba19da2402869c
Binary files /dev/null and b/vendor/go.uber.org/zap/array.go differ
diff --git a/vendor/go.uber.org/zap/buffer/buffer.go b/vendor/go.uber.org/zap/buffer/buffer.go
new file mode 100644
index 0000000000000000000000000000000000000000..9e929cd98e66959fb4cd8ae9a81b09dde1120de4
Binary files /dev/null and b/vendor/go.uber.org/zap/buffer/buffer.go differ
diff --git a/vendor/go.uber.org/zap/buffer/pool.go b/vendor/go.uber.org/zap/buffer/pool.go
new file mode 100644
index 0000000000000000000000000000000000000000..8fb3e202cf45427a0e76900482eda2a926ea23a7
Binary files /dev/null and b/vendor/go.uber.org/zap/buffer/pool.go differ
diff --git a/vendor/go.uber.org/zap/checklicense.sh b/vendor/go.uber.org/zap/checklicense.sh
new file mode 100644
index 0000000000000000000000000000000000000000..345ac8b89abf03cec38412620f7ff7818caaf809
Binary files /dev/null and b/vendor/go.uber.org/zap/checklicense.sh differ
diff --git a/vendor/go.uber.org/zap/config.go b/vendor/go.uber.org/zap/config.go
new file mode 100644
index 0000000000000000000000000000000000000000..55637fb0b4b1004612b5b21576ca0d8f92c7b331
Binary files /dev/null and b/vendor/go.uber.org/zap/config.go differ
diff --git a/vendor/go.uber.org/zap/doc.go b/vendor/go.uber.org/zap/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..8638dd1b9656621728d718bdd2869945638b4f6a
Binary files /dev/null and b/vendor/go.uber.org/zap/doc.go differ
diff --git a/vendor/go.uber.org/zap/encoder.go b/vendor/go.uber.org/zap/encoder.go
new file mode 100644
index 0000000000000000000000000000000000000000..08ed83354360124387f449d36d3d03dcc9a5280a
Binary files /dev/null and b/vendor/go.uber.org/zap/encoder.go differ
diff --git a/vendor/go.uber.org/zap/error.go b/vendor/go.uber.org/zap/error.go
new file mode 100644
index 0000000000000000000000000000000000000000..65982a51e54ce12fa44b41ca542a5a83178cf451
Binary files /dev/null and b/vendor/go.uber.org/zap/error.go differ
diff --git a/vendor/go.uber.org/zap/field.go b/vendor/go.uber.org/zap/field.go
new file mode 100644
index 0000000000000000000000000000000000000000..bbb745db5bdc3ee9c8193390228b1ea5cff0657c
Binary files /dev/null and b/vendor/go.uber.org/zap/field.go differ
diff --git a/vendor/go.uber.org/zap/flag.go b/vendor/go.uber.org/zap/flag.go
new file mode 100644
index 0000000000000000000000000000000000000000..1312875072f90cbe9ac6bb14346a5546866ed1a4
Binary files /dev/null and b/vendor/go.uber.org/zap/flag.go differ
diff --git a/vendor/go.uber.org/zap/glide.yaml b/vendor/go.uber.org/zap/glide.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8e1d05e9abdfd555902701023829ec19d1b79e21
Binary files /dev/null and b/vendor/go.uber.org/zap/glide.yaml differ
diff --git a/vendor/go.uber.org/zap/global.go b/vendor/go.uber.org/zap/global.go
new file mode 100644
index 0000000000000000000000000000000000000000..3cb46c9e0ac5687b01ceede5affc1c50708fb29b
Binary files /dev/null and b/vendor/go.uber.org/zap/global.go differ
diff --git a/vendor/go.uber.org/zap/http_handler.go b/vendor/go.uber.org/zap/http_handler.go
new file mode 100644
index 0000000000000000000000000000000000000000..1297c33b32851d00c421f4e48fe5d7504055889f
Binary files /dev/null and b/vendor/go.uber.org/zap/http_handler.go differ
diff --git a/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go b/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go
new file mode 100644
index 0000000000000000000000000000000000000000..dad583aaa5f871e0b44753066ef576a6070befae
Binary files /dev/null and b/vendor/go.uber.org/zap/internal/bufferpool/bufferpool.go differ
diff --git a/vendor/go.uber.org/zap/internal/color/color.go b/vendor/go.uber.org/zap/internal/color/color.go
new file mode 100644
index 0000000000000000000000000000000000000000..c4d5d02abcc1a250abc80bfaf464b3f296da4cec
Binary files /dev/null and b/vendor/go.uber.org/zap/internal/color/color.go differ
diff --git a/vendor/go.uber.org/zap/internal/exit/exit.go b/vendor/go.uber.org/zap/internal/exit/exit.go
new file mode 100644
index 0000000000000000000000000000000000000000..dfc5b05feb77831a130824be7f68b8b94d999d7a
Binary files /dev/null and b/vendor/go.uber.org/zap/internal/exit/exit.go differ
diff --git a/vendor/go.uber.org/zap/level.go b/vendor/go.uber.org/zap/level.go
new file mode 100644
index 0000000000000000000000000000000000000000..8f86c430f0f75abff4a7d28087d1986369d275a1
Binary files /dev/null and b/vendor/go.uber.org/zap/level.go differ
diff --git a/vendor/go.uber.org/zap/logger.go b/vendor/go.uber.org/zap/logger.go
new file mode 100644
index 0000000000000000000000000000000000000000..087c74222819bf604f972c973f1d4bf7f325c893
Binary files /dev/null and b/vendor/go.uber.org/zap/logger.go differ
diff --git a/vendor/go.uber.org/zap/options.go b/vendor/go.uber.org/zap/options.go
new file mode 100644
index 0000000000000000000000000000000000000000..e9e66161f51098869a4c386a5ade87813dba9f70
Binary files /dev/null and b/vendor/go.uber.org/zap/options.go differ
diff --git a/vendor/go.uber.org/zap/sink.go b/vendor/go.uber.org/zap/sink.go
new file mode 100644
index 0000000000000000000000000000000000000000..df46fa87a70ac6b26f00605e6e29c75dcbd9d168
Binary files /dev/null and b/vendor/go.uber.org/zap/sink.go differ
diff --git a/vendor/go.uber.org/zap/stacktrace.go b/vendor/go.uber.org/zap/stacktrace.go
new file mode 100644
index 0000000000000000000000000000000000000000..3d187fa5666f4c613ae17123466162034f0c668e
Binary files /dev/null and b/vendor/go.uber.org/zap/stacktrace.go differ
diff --git a/vendor/go.uber.org/zap/sugar.go b/vendor/go.uber.org/zap/sugar.go
new file mode 100644
index 0000000000000000000000000000000000000000..0b9651981a900f6f82747e77fc881c4b82f9b10d
Binary files /dev/null and b/vendor/go.uber.org/zap/sugar.go differ
diff --git a/vendor/go.uber.org/zap/time.go b/vendor/go.uber.org/zap/time.go
new file mode 100644
index 0000000000000000000000000000000000000000..c5a1f162259eef9f0d8d8d60ab5879f0b44fed2b
Binary files /dev/null and b/vendor/go.uber.org/zap/time.go differ
diff --git a/vendor/go.uber.org/zap/writer.go b/vendor/go.uber.org/zap/writer.go
new file mode 100644
index 0000000000000000000000000000000000000000..86a709ab0be28795471298513dc3ac369e5c11d9
Binary files /dev/null and b/vendor/go.uber.org/zap/writer.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go b/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go
new file mode 100644
index 0000000000000000000000000000000000000000..ef2f7d9637bcd16f9d5ab655f19f64be100fa3a6
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/buffered_write_syncer.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/clock.go b/vendor/go.uber.org/zap/zapcore/clock.go
new file mode 100644
index 0000000000000000000000000000000000000000..422fd82a6b0faf13131cdb14e4fe7b705401217c
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/clock.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/console_encoder.go b/vendor/go.uber.org/zap/zapcore/console_encoder.go
new file mode 100644
index 0000000000000000000000000000000000000000..1aa5dc36467301aecd5a20b9631c52bf10e949e4
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/console_encoder.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/core.go b/vendor/go.uber.org/zap/zapcore/core.go
new file mode 100644
index 0000000000000000000000000000000000000000..a1ef8b034bb415667c0cfd759ee619aa2651f5b9
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/core.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/doc.go b/vendor/go.uber.org/zap/zapcore/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..31000e91f7005cce56ea8ae91ffd6eee1cd00a33
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/doc.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/encoder.go b/vendor/go.uber.org/zap/zapcore/encoder.go
new file mode 100644
index 0000000000000000000000000000000000000000..6e5fd5651137b6ae2defcea9991ef0eca970d3ff
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/encoder.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/entry.go b/vendor/go.uber.org/zap/zapcore/entry.go
new file mode 100644
index 0000000000000000000000000000000000000000..0885505b75bc7fa48e14106c4d0c7e2e0833ea25
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/entry.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/error.go b/vendor/go.uber.org/zap/zapcore/error.go
new file mode 100644
index 0000000000000000000000000000000000000000..74919b0ccb1b820abcccd5a35967caea230c912b
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/error.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/field.go b/vendor/go.uber.org/zap/zapcore/field.go
new file mode 100644
index 0000000000000000000000000000000000000000..95bdb0a126f493284f63c8da32eea5fddc5c0bc0
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/field.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/hook.go b/vendor/go.uber.org/zap/zapcore/hook.go
new file mode 100644
index 0000000000000000000000000000000000000000..5db4afb302b3785d133369a1be26ac713c7ea91c
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/hook.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/increase_level.go b/vendor/go.uber.org/zap/zapcore/increase_level.go
new file mode 100644
index 0000000000000000000000000000000000000000..5a1749261ab255869be1cf687380817c3dc2be0f
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/increase_level.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/json_encoder.go b/vendor/go.uber.org/zap/zapcore/json_encoder.go
new file mode 100644
index 0000000000000000000000000000000000000000..c5d751b8215af344468cb589a39a0234d8d36a04
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/json_encoder.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/level.go b/vendor/go.uber.org/zap/zapcore/level.go
new file mode 100644
index 0000000000000000000000000000000000000000..56e88dc0c84ff232b60072b8fa3b59d097aefb9d
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/level.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/level_strings.go b/vendor/go.uber.org/zap/zapcore/level_strings.go
new file mode 100644
index 0000000000000000000000000000000000000000..7af8dadcb371c39b93b4e3b031ec55e48208c05e
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/level_strings.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/marshaler.go b/vendor/go.uber.org/zap/zapcore/marshaler.go
new file mode 100644
index 0000000000000000000000000000000000000000..c3c55ba0d9c8884ad77b1c650306c0f7a7376305
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/marshaler.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/memory_encoder.go b/vendor/go.uber.org/zap/zapcore/memory_encoder.go
new file mode 100644
index 0000000000000000000000000000000000000000..dfead0829d6703235f6b50050f14092ca2e99aa3
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/memory_encoder.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/reflected_encoder.go b/vendor/go.uber.org/zap/zapcore/reflected_encoder.go
new file mode 100644
index 0000000000000000000000000000000000000000..8746360eca6fd733887adc5598366f083a523651
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/reflected_encoder.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/sampler.go b/vendor/go.uber.org/zap/zapcore/sampler.go
new file mode 100644
index 0000000000000000000000000000000000000000..8c116049d35ae8a282f4e469d5b2d81a4f6f7ef1
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/sampler.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/tee.go b/vendor/go.uber.org/zap/zapcore/tee.go
new file mode 100644
index 0000000000000000000000000000000000000000..07a32eef9a4582b63a96bb6f745dff753358f78a
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/tee.go differ
diff --git a/vendor/go.uber.org/zap/zapcore/write_syncer.go b/vendor/go.uber.org/zap/zapcore/write_syncer.go
new file mode 100644
index 0000000000000000000000000000000000000000..d4a1af3d078653ebb5717857ac1cbe8355807a5f
Binary files /dev/null and b/vendor/go.uber.org/zap/zapcore/write_syncer.go differ
diff --git a/vendor/goa.design/goa/v3/LICENSE b/vendor/goa.design/goa/v3/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..d4c1b519a53ae531dab835bf50de4e6a75614d36
Binary files /dev/null and b/vendor/goa.design/goa/v3/LICENSE differ
diff --git a/vendor/goa.design/goa/v3/dsl/api.go b/vendor/goa.design/goa/v3/dsl/api.go
new file mode 100644
index 0000000000000000000000000000000000000000..72a7149a6d2c81e1a0cd0b4d5fe2997fc2757efc
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/api.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/attribute.go b/vendor/goa.design/goa/v3/dsl/attribute.go
new file mode 100644
index 0000000000000000000000000000000000000000..614da35e126de19baf62dbe61ae08db10d3bfb01
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/attribute.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/convert.go b/vendor/goa.design/goa/v3/dsl/convert.go
new file mode 100644
index 0000000000000000000000000000000000000000..16c2f7628ac3e12b1fe57e0e8202527f21da0752
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/convert.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/description.go b/vendor/goa.design/goa/v3/dsl/description.go
new file mode 100644
index 0000000000000000000000000000000000000000..94acdbba45dd20516603af801246c967ca1e8355
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/description.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/doc.go b/vendor/goa.design/goa/v3/dsl/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..8bcfce121892da5fbc9e6065eb53c06a818a20ad
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/doc.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/error.go b/vendor/goa.design/goa/v3/dsl/error.go
new file mode 100644
index 0000000000000000000000000000000000000000..d0d6c387d19e8c64a2483a02abc629a2565b658c
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/error.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/grpc.go b/vendor/goa.design/goa/v3/dsl/grpc.go
new file mode 100644
index 0000000000000000000000000000000000000000..e0e07d9a0cbf5673460695e625acf29826210332
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/grpc.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/headers.go b/vendor/goa.design/goa/v3/dsl/headers.go
new file mode 100644
index 0000000000000000000000000000000000000000..baf597e134786a99c54c4093fb185dbbd8d8a2ac
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/headers.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/http.go b/vendor/goa.design/goa/v3/dsl/http.go
new file mode 100644
index 0000000000000000000000000000000000000000..7d23defa2003396e56180f2267349080ff5236a4
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/http.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/http_file_server.go b/vendor/goa.design/goa/v3/dsl/http_file_server.go
new file mode 100644
index 0000000000000000000000000000000000000000..77665dc4f672a8e1c9079ffe164907ba67496376
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/http_file_server.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/http_redirect.go b/vendor/goa.design/goa/v3/dsl/http_redirect.go
new file mode 100644
index 0000000000000000000000000000000000000000..f88d658b705d6cce21fd29ebfa87b240d48e954b
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/http_redirect.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/meta.go b/vendor/goa.design/goa/v3/dsl/meta.go
new file mode 100644
index 0000000000000000000000000000000000000000..5c84be3114a4e8bf3b9cce48ea035db6a1146985
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/meta.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/method.go b/vendor/goa.design/goa/v3/dsl/method.go
new file mode 100644
index 0000000000000000000000000000000000000000..006066649910a77d74d6c43dc62930612c5ccafb
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/method.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/payload.go b/vendor/goa.design/goa/v3/dsl/payload.go
new file mode 100644
index 0000000000000000000000000000000000000000..7509be80205a2aea5b46b13380721a52e407cefd
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/payload.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/response.go b/vendor/goa.design/goa/v3/dsl/response.go
new file mode 100644
index 0000000000000000000000000000000000000000..5ce0353695912862bc2e681fac3192a6f80675ef
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/response.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/result.go b/vendor/goa.design/goa/v3/dsl/result.go
new file mode 100644
index 0000000000000000000000000000000000000000..829a33582e2ff819a2585f6a94e79a35abe94b8c
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/result.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/result_type.go b/vendor/goa.design/goa/v3/dsl/result_type.go
new file mode 100644
index 0000000000000000000000000000000000000000..fafb1b84db9406177d3ea4efa9cb1a5aca51cfc3
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/result_type.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/security.go b/vendor/goa.design/goa/v3/dsl/security.go
new file mode 100644
index 0000000000000000000000000000000000000000..76324267f2f8848ea5ef20f6e1cbe9e358e41b0c
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/security.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/server.go b/vendor/goa.design/goa/v3/dsl/server.go
new file mode 100644
index 0000000000000000000000000000000000000000..ded90faeba9b9ec74375ca8de7e0ed57043de6ca
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/server.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/service.go b/vendor/goa.design/goa/v3/dsl/service.go
new file mode 100644
index 0000000000000000000000000000000000000000..792ec8404c432ffcd24b2cfb1e4c5ea43fd7c36b
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/service.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/types.go b/vendor/goa.design/goa/v3/dsl/types.go
new file mode 100644
index 0000000000000000000000000000000000000000..d8c274a79b90acf2bd06640670125d8c654c2110
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/types.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/user_type.go b/vendor/goa.design/goa/v3/dsl/user_type.go
new file mode 100644
index 0000000000000000000000000000000000000000..70e5296a644a313e9be55d0bed9793bb3539a4d9
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/user_type.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/validation.go b/vendor/goa.design/goa/v3/dsl/validation.go
new file mode 100644
index 0000000000000000000000000000000000000000..0647e6663dacb67c9aa1875034fa3983b7f2a44f
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/validation.go differ
diff --git a/vendor/goa.design/goa/v3/dsl/value.go b/vendor/goa.design/goa/v3/dsl/value.go
new file mode 100644
index 0000000000000000000000000000000000000000..f7998e304c1a5fa3e12976972697aaae1c05144c
Binary files /dev/null and b/vendor/goa.design/goa/v3/dsl/value.go differ
diff --git a/vendor/goa.design/goa/v3/eval/context.go b/vendor/goa.design/goa/v3/eval/context.go
new file mode 100644
index 0000000000000000000000000000000000000000..338431a502fa229aaae600ae2ef99238e68205a5
Binary files /dev/null and b/vendor/goa.design/goa/v3/eval/context.go differ
diff --git a/vendor/goa.design/goa/v3/eval/doc.go b/vendor/goa.design/goa/v3/eval/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..17b22db3523921754f38995c7f78e5567cf5480b
Binary files /dev/null and b/vendor/goa.design/goa/v3/eval/doc.go differ
diff --git a/vendor/goa.design/goa/v3/eval/error.go b/vendor/goa.design/goa/v3/eval/error.go
new file mode 100644
index 0000000000000000000000000000000000000000..c655c99e4de7e305b82e959917f271c917786e88
Binary files /dev/null and b/vendor/goa.design/goa/v3/eval/error.go differ
diff --git a/vendor/goa.design/goa/v3/eval/eval.go b/vendor/goa.design/goa/v3/eval/eval.go
new file mode 100644
index 0000000000000000000000000000000000000000..d8e506658bc3185146221f8ca25a57aad42b9357
Binary files /dev/null and b/vendor/goa.design/goa/v3/eval/eval.go differ
diff --git a/vendor/goa.design/goa/v3/eval/expression.go b/vendor/goa.design/goa/v3/eval/expression.go
new file mode 100644
index 0000000000000000000000000000000000000000..450e8f8d0b4607d2c8dc72bcce08fdde3f50e6b7
Binary files /dev/null and b/vendor/goa.design/goa/v3/eval/expression.go differ
diff --git a/vendor/goa.design/goa/v3/expr/api.go b/vendor/goa.design/goa/v3/expr/api.go
new file mode 100644
index 0000000000000000000000000000000000000000..224e0ce638a0942daa7d264683fa370dadfe8461
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/api.go differ
diff --git a/vendor/goa.design/goa/v3/expr/attribute.go b/vendor/goa.design/goa/v3/expr/attribute.go
new file mode 100644
index 0000000000000000000000000000000000000000..004e41c675169a01fb7be805c338d86e376380c8
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/attribute.go differ
diff --git a/vendor/goa.design/goa/v3/expr/docs.go b/vendor/goa.design/goa/v3/expr/docs.go
new file mode 100644
index 0000000000000000000000000000000000000000..00c6d00f690beaab3da245341e19d06225b97cd7
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/docs.go differ
diff --git a/vendor/goa.design/goa/v3/expr/dup.go b/vendor/goa.design/goa/v3/expr/dup.go
new file mode 100644
index 0000000000000000000000000000000000000000..3eeffc1395c62b22a352534a1bbb59883ca8ba71
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/dup.go differ
diff --git a/vendor/goa.design/goa/v3/expr/example.go b/vendor/goa.design/goa/v3/expr/example.go
new file mode 100644
index 0000000000000000000000000000000000000000..57958a5c5c1dd23e602756bd0ec5061e9f40b0f8
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/example.go differ
diff --git a/vendor/goa.design/goa/v3/expr/generated.go b/vendor/goa.design/goa/v3/expr/generated.go
new file mode 100644
index 0000000000000000000000000000000000000000..15f5648a79a017e24bc4e152a884fdb3152d4c85
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/generated.go differ
diff --git a/vendor/goa.design/goa/v3/expr/grpc.go b/vendor/goa.design/goa/v3/expr/grpc.go
new file mode 100644
index 0000000000000000000000000000000000000000..ad7bc299eb33ca11c97adf9b7226c1ff7a025e0c
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/grpc.go differ
diff --git a/vendor/goa.design/goa/v3/expr/grpc_endpoint.go b/vendor/goa.design/goa/v3/expr/grpc_endpoint.go
new file mode 100644
index 0000000000000000000000000000000000000000..18ad6342abd978101ff481942ff4f33e02f59242
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/grpc_endpoint.go differ
diff --git a/vendor/goa.design/goa/v3/expr/grpc_error.go b/vendor/goa.design/goa/v3/expr/grpc_error.go
new file mode 100644
index 0000000000000000000000000000000000000000..b387254e91dce3ca2119edf296143f53343a942f
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/grpc_error.go differ
diff --git a/vendor/goa.design/goa/v3/expr/grpc_response.go b/vendor/goa.design/goa/v3/expr/grpc_response.go
new file mode 100644
index 0000000000000000000000000000000000000000..20bbaaaf43d5bdfd767e389b3548f73256413f0d
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/grpc_response.go differ
diff --git a/vendor/goa.design/goa/v3/expr/grpc_service.go b/vendor/goa.design/goa/v3/expr/grpc_service.go
new file mode 100644
index 0000000000000000000000000000000000000000..2fffe92eba98049eb6f0318e9c80d74b27d8cc46
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/grpc_service.go differ
diff --git a/vendor/goa.design/goa/v3/expr/hasher.go b/vendor/goa.design/goa/v3/expr/hasher.go
new file mode 100644
index 0000000000000000000000000000000000000000..0bbc28c30a9410dfe8dadc39b8d5a6591abf9965
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/hasher.go differ
diff --git a/vendor/goa.design/goa/v3/expr/helpers.go b/vendor/goa.design/goa/v3/expr/helpers.go
new file mode 100644
index 0000000000000000000000000000000000000000..7d1aa419cd86a8b2956be82ce8f7ae57dd0f674d
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/helpers.go differ
diff --git a/vendor/goa.design/goa/v3/expr/http.go b/vendor/goa.design/goa/v3/expr/http.go
new file mode 100644
index 0000000000000000000000000000000000000000..23a418997fd3e20f241418cb4235c948257e4309
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/http.go differ
diff --git a/vendor/goa.design/goa/v3/expr/http_body_types.go b/vendor/goa.design/goa/v3/expr/http_body_types.go
new file mode 100644
index 0000000000000000000000000000000000000000..9a624df94bded88fa7536e4d3512309a8d3f3743
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/http_body_types.go differ
diff --git a/vendor/goa.design/goa/v3/expr/http_endpoint.go b/vendor/goa.design/goa/v3/expr/http_endpoint.go
new file mode 100644
index 0000000000000000000000000000000000000000..1e9da92dedebbae733e8152e1984208c67d1a4c4
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/http_endpoint.go differ
diff --git a/vendor/goa.design/goa/v3/expr/http_error.go b/vendor/goa.design/goa/v3/expr/http_error.go
new file mode 100644
index 0000000000000000000000000000000000000000..881dd400ac74d6455373aef11ecf6fee55a291be
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/http_error.go differ
diff --git a/vendor/goa.design/goa/v3/expr/http_file_server.go b/vendor/goa.design/goa/v3/expr/http_file_server.go
new file mode 100644
index 0000000000000000000000000000000000000000..f7d90891632bedd7371f14e796e1d18c955be1bd
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/http_file_server.go differ
diff --git a/vendor/goa.design/goa/v3/expr/http_redirect.go b/vendor/goa.design/goa/v3/expr/http_redirect.go
new file mode 100644
index 0000000000000000000000000000000000000000..d76abea37798c481c57f450c7002dbbc495d97c2
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/http_redirect.go differ
diff --git a/vendor/goa.design/goa/v3/expr/http_response.go b/vendor/goa.design/goa/v3/expr/http_response.go
new file mode 100644
index 0000000000000000000000000000000000000000..638cf2232bb62adc533b6d0d7a9d305ac3ba19e2
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/http_response.go differ
diff --git a/vendor/goa.design/goa/v3/expr/http_service.go b/vendor/goa.design/goa/v3/expr/http_service.go
new file mode 100644
index 0000000000000000000000000000000000000000..7a959e5587dd25dc639f0c9aeb313cb9b5b41df3
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/http_service.go differ
diff --git a/vendor/goa.design/goa/v3/expr/init.go b/vendor/goa.design/goa/v3/expr/init.go
new file mode 100644
index 0000000000000000000000000000000000000000..7b6d626a6b3add0c1b34004651ae1c66ff4f1388
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/init.go differ
diff --git a/vendor/goa.design/goa/v3/expr/mapped_attribute.go b/vendor/goa.design/goa/v3/expr/mapped_attribute.go
new file mode 100644
index 0000000000000000000000000000000000000000..3146d3e231a80e9dc83b9b5e4bd1d34a39fd5773
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/mapped_attribute.go differ
diff --git a/vendor/goa.design/goa/v3/expr/method.go b/vendor/goa.design/goa/v3/expr/method.go
new file mode 100644
index 0000000000000000000000000000000000000000..4d6a422f624587d9d0332bae8325cf74befa02df
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/method.go differ
diff --git a/vendor/goa.design/goa/v3/expr/random.go b/vendor/goa.design/goa/v3/expr/random.go
new file mode 100644
index 0000000000000000000000000000000000000000..f58680ba45e5e03b63b82cbc829be952b47f8b54
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/random.go differ
diff --git a/vendor/goa.design/goa/v3/expr/result_type.go b/vendor/goa.design/goa/v3/expr/result_type.go
new file mode 100644
index 0000000000000000000000000000000000000000..0a8761d22bd0f878f3d4f2ece36ffdfe37f8c184
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/result_type.go differ
diff --git a/vendor/goa.design/goa/v3/expr/root.go b/vendor/goa.design/goa/v3/expr/root.go
new file mode 100644
index 0000000000000000000000000000000000000000..32e739ce7a3a7871c403568072165743b66eb4a1
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/root.go differ
diff --git a/vendor/goa.design/goa/v3/expr/security.go b/vendor/goa.design/goa/v3/expr/security.go
new file mode 100644
index 0000000000000000000000000000000000000000..93c24b2bd12e6698d4872dcc30f95b8a6bb605aa
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/security.go differ
diff --git a/vendor/goa.design/goa/v3/expr/server.go b/vendor/goa.design/goa/v3/expr/server.go
new file mode 100644
index 0000000000000000000000000000000000000000..aa08d8c097622da052b8d84ab0df1f954148da90
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/server.go differ
diff --git a/vendor/goa.design/goa/v3/expr/service.go b/vendor/goa.design/goa/v3/expr/service.go
new file mode 100644
index 0000000000000000000000000000000000000000..b78ba0751a0478046b66773f7b4bf266fe32ef23
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/service.go differ
diff --git a/vendor/goa.design/goa/v3/expr/testing.go b/vendor/goa.design/goa/v3/expr/testing.go
new file mode 100644
index 0000000000000000000000000000000000000000..79e537a6da8a6e74e47b16e664b92c7a6b4f49fe
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/testing.go differ
diff --git a/vendor/goa.design/goa/v3/expr/types.go b/vendor/goa.design/goa/v3/expr/types.go
new file mode 100644
index 0000000000000000000000000000000000000000..40f4bc732e41bb10739f46846e79758439bbcde7
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/types.go differ
diff --git a/vendor/goa.design/goa/v3/expr/user_type.go b/vendor/goa.design/goa/v3/expr/user_type.go
new file mode 100644
index 0000000000000000000000000000000000000000..e7eaa9c115d80931cbc2d4106a3c9cdf64c3cdda
Binary files /dev/null and b/vendor/goa.design/goa/v3/expr/user_type.go differ
diff --git a/vendor/goa.design/goa/v3/http/client.go b/vendor/goa.design/goa/v3/http/client.go
new file mode 100644
index 0000000000000000000000000000000000000000..1022c0a61cbfa41513b40a58edaa70729fa9b94c
Binary files /dev/null and b/vendor/goa.design/goa/v3/http/client.go differ
diff --git a/vendor/goa.design/goa/v3/http/doc.go b/vendor/goa.design/goa/v3/http/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..f22a66b92630015f03d55d47df8117b9a130adb6
Binary files /dev/null and b/vendor/goa.design/goa/v3/http/doc.go differ
diff --git a/vendor/goa.design/goa/v3/http/encoding.go b/vendor/goa.design/goa/v3/http/encoding.go
new file mode 100644
index 0000000000000000000000000000000000000000..778af1cf66e1e69b188649cd468bf8a7f82fabff
Binary files /dev/null and b/vendor/goa.design/goa/v3/http/encoding.go differ
diff --git a/vendor/goa.design/goa/v3/http/error.go b/vendor/goa.design/goa/v3/http/error.go
new file mode 100644
index 0000000000000000000000000000000000000000..f0dc0f754391b7f91486ae0639f8345e1ffbe51c
Binary files /dev/null and b/vendor/goa.design/goa/v3/http/error.go differ
diff --git a/vendor/goa.design/goa/v3/http/mux.go b/vendor/goa.design/goa/v3/http/mux.go
new file mode 100644
index 0000000000000000000000000000000000000000..6d4e4cfdf2475403c00fbdf96b19a02700216a18
Binary files /dev/null and b/vendor/goa.design/goa/v3/http/mux.go differ
diff --git a/vendor/goa.design/goa/v3/http/server.go b/vendor/goa.design/goa/v3/http/server.go
new file mode 100644
index 0000000000000000000000000000000000000000..396928e7291d9c2ab9ad64d1005caae89e1bbfe4
Binary files /dev/null and b/vendor/goa.design/goa/v3/http/server.go differ
diff --git a/vendor/goa.design/goa/v3/http/websocket.go b/vendor/goa.design/goa/v3/http/websocket.go
new file mode 100644
index 0000000000000000000000000000000000000000..2f726943e3cc0cc8e39c41d30e301c59901a4a83
Binary files /dev/null and b/vendor/goa.design/goa/v3/http/websocket.go differ
diff --git a/vendor/goa.design/goa/v3/pkg/doc.go b/vendor/goa.design/goa/v3/pkg/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..529c1f448335115af0edbfd1137e5280c9bb5545
Binary files /dev/null and b/vendor/goa.design/goa/v3/pkg/doc.go differ
diff --git a/vendor/goa.design/goa/v3/pkg/endpoint.go b/vendor/goa.design/goa/v3/pkg/endpoint.go
new file mode 100644
index 0000000000000000000000000000000000000000..0a79fa387849bcb8425331a57f6f64144cfeebf8
Binary files /dev/null and b/vendor/goa.design/goa/v3/pkg/endpoint.go differ
diff --git a/vendor/goa.design/goa/v3/pkg/error.go b/vendor/goa.design/goa/v3/pkg/error.go
new file mode 100644
index 0000000000000000000000000000000000000000..25ac470d1705eeb8379aabeda1bba616bdd84788
Binary files /dev/null and b/vendor/goa.design/goa/v3/pkg/error.go differ
diff --git a/vendor/goa.design/goa/v3/pkg/validation.go b/vendor/goa.design/goa/v3/pkg/validation.go
new file mode 100644
index 0000000000000000000000000000000000000000..e29442c5a8c657bf170670966bb54025e8b627b8
Binary files /dev/null and b/vendor/goa.design/goa/v3/pkg/validation.go differ
diff --git a/vendor/goa.design/goa/v3/pkg/version.go b/vendor/goa.design/goa/v3/pkg/version.go
new file mode 100644
index 0000000000000000000000000000000000000000..8300800be18045fbefbe38169c5418153bc42c79
Binary files /dev/null and b/vendor/goa.design/goa/v3/pkg/version.go differ
diff --git a/vendor/golang.org/x/mod/LICENSE b/vendor/golang.org/x/mod/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..6a66aea5eafe0ca6a688840c47219556c552488e
Binary files /dev/null and b/vendor/golang.org/x/mod/LICENSE differ
diff --git a/vendor/golang.org/x/mod/PATENTS b/vendor/golang.org/x/mod/PATENTS
new file mode 100644
index 0000000000000000000000000000000000000000..733099041f84fa1e58611ab2e11af51c1f26d1d2
Binary files /dev/null and b/vendor/golang.org/x/mod/PATENTS differ
diff --git a/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go b/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go
new file mode 100644
index 0000000000000000000000000000000000000000..2681af35af1954b1384eecc12bcea655462a8776
Binary files /dev/null and b/vendor/golang.org/x/mod/internal/lazyregexp/lazyre.go differ
diff --git a/vendor/golang.org/x/mod/module/module.go b/vendor/golang.org/x/mod/module/module.go
new file mode 100644
index 0000000000000000000000000000000000000000..355b5a456854ffacbed82fe1e0253bff003f7dd2
Binary files /dev/null and b/vendor/golang.org/x/mod/module/module.go differ
diff --git a/vendor/golang.org/x/mod/module/pseudo.go b/vendor/golang.org/x/mod/module/pseudo.go
new file mode 100644
index 0000000000000000000000000000000000000000..f04ad3788694fc9eb4764fb4d8546d2faa01f4f8
Binary files /dev/null and b/vendor/golang.org/x/mod/module/pseudo.go differ
diff --git a/vendor/golang.org/x/mod/semver/semver.go b/vendor/golang.org/x/mod/semver/semver.go
new file mode 100644
index 0000000000000000000000000000000000000000..a30a22bf20f1843be5015b457168fa4a6f26a27a
Binary files /dev/null and b/vendor/golang.org/x/mod/semver/semver.go differ
diff --git a/vendor/golang.org/x/sync/AUTHORS b/vendor/golang.org/x/sync/AUTHORS
new file mode 100644
index 0000000000000000000000000000000000000000..15167cd746c560e5b3d3b233a169aa64d3e9101e
Binary files /dev/null and b/vendor/golang.org/x/sync/AUTHORS differ
diff --git a/vendor/golang.org/x/sync/CONTRIBUTORS b/vendor/golang.org/x/sync/CONTRIBUTORS
new file mode 100644
index 0000000000000000000000000000000000000000..1c4577e9680611383f46044d17fa343a96997c3c
Binary files /dev/null and b/vendor/golang.org/x/sync/CONTRIBUTORS differ
diff --git a/vendor/golang.org/x/sync/LICENSE b/vendor/golang.org/x/sync/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..6a66aea5eafe0ca6a688840c47219556c552488e
Binary files /dev/null and b/vendor/golang.org/x/sync/LICENSE differ
diff --git a/vendor/golang.org/x/sync/PATENTS b/vendor/golang.org/x/sync/PATENTS
new file mode 100644
index 0000000000000000000000000000000000000000..733099041f84fa1e58611ab2e11af51c1f26d1d2
Binary files /dev/null and b/vendor/golang.org/x/sync/PATENTS differ
diff --git a/vendor/golang.org/x/sync/errgroup/errgroup.go b/vendor/golang.org/x/sync/errgroup/errgroup.go
new file mode 100644
index 0000000000000000000000000000000000000000..9857fe53d3c91c527ee9b363df2c6d3ed8c52576
Binary files /dev/null and b/vendor/golang.org/x/sync/errgroup/errgroup.go differ
diff --git a/vendor/golang.org/x/sys/AUTHORS b/vendor/golang.org/x/sys/AUTHORS
new file mode 100644
index 0000000000000000000000000000000000000000..15167cd746c560e5b3d3b233a169aa64d3e9101e
Binary files /dev/null and b/vendor/golang.org/x/sys/AUTHORS differ
diff --git a/vendor/golang.org/x/sys/CONTRIBUTORS b/vendor/golang.org/x/sys/CONTRIBUTORS
new file mode 100644
index 0000000000000000000000000000000000000000..1c4577e9680611383f46044d17fa343a96997c3c
Binary files /dev/null and b/vendor/golang.org/x/sys/CONTRIBUTORS differ
diff --git a/vendor/golang.org/x/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..6a66aea5eafe0ca6a688840c47219556c552488e
Binary files /dev/null and b/vendor/golang.org/x/sys/LICENSE differ
diff --git a/vendor/golang.org/x/sys/PATENTS b/vendor/golang.org/x/sys/PATENTS
new file mode 100644
index 0000000000000000000000000000000000000000..733099041f84fa1e58611ab2e11af51c1f26d1d2
Binary files /dev/null and b/vendor/golang.org/x/sys/PATENTS differ
diff --git a/vendor/golang.org/x/sys/execabs/execabs.go b/vendor/golang.org/x/sys/execabs/execabs.go
new file mode 100644
index 0000000000000000000000000000000000000000..b981cfbb4ae3f84ec26a821f156b1a1c72ae592d
Binary files /dev/null and b/vendor/golang.org/x/sys/execabs/execabs.go differ
diff --git a/vendor/golang.org/x/sys/execabs/execabs_go118.go b/vendor/golang.org/x/sys/execabs/execabs_go118.go
new file mode 100644
index 0000000000000000000000000000000000000000..6ab5f50894e22724e8aa070c6e90f459e5937fbc
Binary files /dev/null and b/vendor/golang.org/x/sys/execabs/execabs_go118.go differ
diff --git a/vendor/golang.org/x/sys/execabs/execabs_go119.go b/vendor/golang.org/x/sys/execabs/execabs_go119.go
new file mode 100644
index 0000000000000000000000000000000000000000..1e7a9ada0b0dd06fc0b4d3bde758c3441d945293
Binary files /dev/null and b/vendor/golang.org/x/sys/execabs/execabs_go119.go differ
diff --git a/vendor/golang.org/x/tools/AUTHORS b/vendor/golang.org/x/tools/AUTHORS
new file mode 100644
index 0000000000000000000000000000000000000000..15167cd746c560e5b3d3b233a169aa64d3e9101e
Binary files /dev/null and b/vendor/golang.org/x/tools/AUTHORS differ
diff --git a/vendor/golang.org/x/tools/CONTRIBUTORS b/vendor/golang.org/x/tools/CONTRIBUTORS
new file mode 100644
index 0000000000000000000000000000000000000000..1c4577e9680611383f46044d17fa343a96997c3c
Binary files /dev/null and b/vendor/golang.org/x/tools/CONTRIBUTORS differ
diff --git a/vendor/golang.org/x/tools/LICENSE b/vendor/golang.org/x/tools/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..6a66aea5eafe0ca6a688840c47219556c552488e
Binary files /dev/null and b/vendor/golang.org/x/tools/LICENSE differ
diff --git a/vendor/golang.org/x/tools/PATENTS b/vendor/golang.org/x/tools/PATENTS
new file mode 100644
index 0000000000000000000000000000000000000000..733099041f84fa1e58611ab2e11af51c1f26d1d2
Binary files /dev/null and b/vendor/golang.org/x/tools/PATENTS differ
diff --git a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go
new file mode 100644
index 0000000000000000000000000000000000000000..a5c6d6d4fa06cbc49cb7be1aea89cea6d5f821cb
Binary files /dev/null and b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go differ
diff --git a/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/golang.org/x/tools/go/ast/astutil/imports.go
new file mode 100644
index 0000000000000000000000000000000000000000..2087ceec9cfd6c0e2a9b2d8b8ca669d9a9d54635
Binary files /dev/null and b/vendor/golang.org/x/tools/go/ast/astutil/imports.go differ
diff --git a/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go
new file mode 100644
index 0000000000000000000000000000000000000000..6d9ca23e2b02c4fd99e0136df1c998d4597e7eaa
Binary files /dev/null and b/vendor/golang.org/x/tools/go/ast/astutil/rewrite.go differ
diff --git a/vendor/golang.org/x/tools/go/ast/astutil/util.go b/vendor/golang.org/x/tools/go/ast/astutil/util.go
new file mode 100644
index 0000000000000000000000000000000000000000..919d5305ab422eb19f91d06d6d04fbad62f40650
Binary files /dev/null and b/vendor/golang.org/x/tools/go/ast/astutil/util.go differ
diff --git a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go
new file mode 100644
index 0000000000000000000000000000000000000000..cec819d641060ed74a32cfd115b591675004606a
Binary files /dev/null and b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go differ
diff --git a/vendor/golang.org/x/tools/go/gcexportdata/importer.go b/vendor/golang.org/x/tools/go/gcexportdata/importer.go
new file mode 100644
index 0000000000000000000000000000000000000000..efe221e7e1423e370d968eb512be02bb7ea6601e
Binary files /dev/null and b/vendor/golang.org/x/tools/go/gcexportdata/importer.go differ
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go
new file mode 100644
index 0000000000000000000000000000000000000000..0a3cdb9a3b81c8aa88f7b3addfd030a5734a3f61
Binary files /dev/null and b/vendor/golang.org/x/tools/go/internal/gcimporter/bexport.go differ
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go
new file mode 100644
index 0000000000000000000000000000000000000000..b85de01470018c241d9568e948f63c6598f304d7
Binary files /dev/null and b/vendor/golang.org/x/tools/go/internal/gcimporter/bimport.go differ
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go b/vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go
new file mode 100644
index 0000000000000000000000000000000000000000..f6437feb1cfde97cee3d6a150ea725d455999c8c
Binary files /dev/null and b/vendor/golang.org/x/tools/go/internal/gcimporter/exportdata.go differ
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go b/vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go
new file mode 100644
index 0000000000000000000000000000000000000000..3ab66830d747c984a8ca0face61812d4be3b7837
Binary files /dev/null and b/vendor/golang.org/x/tools/go/internal/gcimporter/gcimporter.go differ
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go
new file mode 100644
index 0000000000000000000000000000000000000000..209553409cb5f4e31a730a6b8b0b17a0679d3bb0
Binary files /dev/null and b/vendor/golang.org/x/tools/go/internal/gcimporter/iexport.go differ
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go
new file mode 100644
index 0000000000000000000000000000000000000000..84cfb807d739e48d79b88d6937253dbf5b786743
Binary files /dev/null and b/vendor/golang.org/x/tools/go/internal/gcimporter/iimport.go differ
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface10.go b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface10.go
new file mode 100644
index 0000000000000000000000000000000000000000..8b163e3d058ae416fe813147e6d5013c6ef3a736
Binary files /dev/null and b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface10.go differ
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface11.go b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface11.go
new file mode 100644
index 0000000000000000000000000000000000000000..49984f40fd80a4ce5aabd3595af53583b82f92c2
Binary files /dev/null and b/vendor/golang.org/x/tools/go/internal/gcimporter/newInterface11.go differ
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/support_go117.go b/vendor/golang.org/x/tools/go/internal/gcimporter/support_go117.go
new file mode 100644
index 0000000000000000000000000000000000000000..d892273efb614a69c14e8c256bbcdb5a4ba600e6
Binary files /dev/null and b/vendor/golang.org/x/tools/go/internal/gcimporter/support_go117.go differ
diff --git a/vendor/golang.org/x/tools/go/internal/gcimporter/support_go118.go b/vendor/golang.org/x/tools/go/internal/gcimporter/support_go118.go
new file mode 100644
index 0000000000000000000000000000000000000000..a993843230c109addc700c21108ecb10b96d9d3c
Binary files /dev/null and b/vendor/golang.org/x/tools/go/internal/gcimporter/support_go118.go differ
diff --git a/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go
new file mode 100644
index 0000000000000000000000000000000000000000..18a002f82a1f90c06195f2063d1ddb8ec5860484
Binary files /dev/null and b/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go differ
diff --git a/vendor/golang.org/x/tools/go/packages/doc.go b/vendor/golang.org/x/tools/go/packages/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..4bfe28a51ff520c88d0b1f37724d9e1e85b9b603
Binary files /dev/null and b/vendor/golang.org/x/tools/go/packages/doc.go differ
diff --git a/vendor/golang.org/x/tools/go/packages/external.go b/vendor/golang.org/x/tools/go/packages/external.go
new file mode 100644
index 0000000000000000000000000000000000000000..7242a0a7d2bef8a68ed4fcf5f0d0b21c5f4f1b94
Binary files /dev/null and b/vendor/golang.org/x/tools/go/packages/external.go differ
diff --git a/vendor/golang.org/x/tools/go/packages/golist.go b/vendor/golang.org/x/tools/go/packages/golist.go
new file mode 100644
index 0000000000000000000000000000000000000000..0e1e7f11fee8c102578eb752d48bccf676adb821
Binary files /dev/null and b/vendor/golang.org/x/tools/go/packages/golist.go differ
diff --git a/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/vendor/golang.org/x/tools/go/packages/golist_overlay.go
new file mode 100644
index 0000000000000000000000000000000000000000..9576b472f9cc5fd0b5c3bad19573fc40d9e9e8f7
Binary files /dev/null and b/vendor/golang.org/x/tools/go/packages/golist_overlay.go differ
diff --git a/vendor/golang.org/x/tools/go/packages/loadmode_string.go b/vendor/golang.org/x/tools/go/packages/loadmode_string.go
new file mode 100644
index 0000000000000000000000000000000000000000..7ea37e7eeac3c3acf27a65c879fc1793d54d8b74
Binary files /dev/null and b/vendor/golang.org/x/tools/go/packages/loadmode_string.go differ
diff --git a/vendor/golang.org/x/tools/go/packages/packages.go b/vendor/golang.org/x/tools/go/packages/packages.go
new file mode 100644
index 0000000000000000000000000000000000000000..1b5424e78f7a0e656548f4d6dc0b2e10cdd45d4a
Binary files /dev/null and b/vendor/golang.org/x/tools/go/packages/packages.go differ
diff --git a/vendor/golang.org/x/tools/go/packages/visit.go b/vendor/golang.org/x/tools/go/packages/visit.go
new file mode 100644
index 0000000000000000000000000000000000000000..a1dcc40b7270d67b644652c4f3515bf1040fad86
Binary files /dev/null and b/vendor/golang.org/x/tools/go/packages/visit.go differ
diff --git a/vendor/golang.org/x/tools/imports/forward.go b/vendor/golang.org/x/tools/imports/forward.go
new file mode 100644
index 0000000000000000000000000000000000000000..8be18a66b3c2577f54d614e57a0f273f87913b5f
Binary files /dev/null and b/vendor/golang.org/x/tools/imports/forward.go differ
diff --git a/vendor/golang.org/x/tools/internal/event/core/event.go b/vendor/golang.org/x/tools/internal/event/core/event.go
new file mode 100644
index 0000000000000000000000000000000000000000..a6cf0e64a4b17f89fba037bb953d8488b947d856
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/event/core/event.go differ
diff --git a/vendor/golang.org/x/tools/internal/event/core/export.go b/vendor/golang.org/x/tools/internal/event/core/export.go
new file mode 100644
index 0000000000000000000000000000000000000000..05f3a9a5791a9d1ea3bac36f2bb26ac61e61ff24
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/event/core/export.go differ
diff --git a/vendor/golang.org/x/tools/internal/event/core/fast.go b/vendor/golang.org/x/tools/internal/event/core/fast.go
new file mode 100644
index 0000000000000000000000000000000000000000..06c1d4615e6b259b05eb29eb081fb1790dbe5a0d
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/event/core/fast.go differ
diff --git a/vendor/golang.org/x/tools/internal/event/doc.go b/vendor/golang.org/x/tools/internal/event/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..5dc6e6babedd8c9b597b3726f36482eba70f85a3
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/event/doc.go differ
diff --git a/vendor/golang.org/x/tools/internal/event/event.go b/vendor/golang.org/x/tools/internal/event/event.go
new file mode 100644
index 0000000000000000000000000000000000000000..4d55e577d1a80283fd0dd68c75eb82cd99267cbc
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/event/event.go differ
diff --git a/vendor/golang.org/x/tools/internal/event/keys/keys.go b/vendor/golang.org/x/tools/internal/event/keys/keys.go
new file mode 100644
index 0000000000000000000000000000000000000000..a02206e30150d3b1bca3ed593e293f4fba4204b4
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/event/keys/keys.go differ
diff --git a/vendor/golang.org/x/tools/internal/event/keys/standard.go b/vendor/golang.org/x/tools/internal/event/keys/standard.go
new file mode 100644
index 0000000000000000000000000000000000000000..7e95866592134cc4325afb76a1cdbaede72f80b8
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/event/keys/standard.go differ
diff --git a/vendor/golang.org/x/tools/internal/event/label/label.go b/vendor/golang.org/x/tools/internal/event/label/label.go
new file mode 100644
index 0000000000000000000000000000000000000000..0f526e1f9ab44865af8a068020270bf240214f0f
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/event/label/label.go differ
diff --git a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go
new file mode 100644
index 0000000000000000000000000000000000000000..9887f7e7a016e02f84e1eaf82d5745c537a64200
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk.go differ
diff --git a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_fileno.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_fileno.go
new file mode 100644
index 0000000000000000000000000000000000000000..d58595dbd3f6839c4a4fc77d19f17b3bb1de0db4
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_fileno.go differ
diff --git a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_ino.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_ino.go
new file mode 100644
index 0000000000000000000000000000000000000000..ea02b9ebfe8b02efc8fd3ffcfb2c6cd326a97a6f
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_ino.go differ
diff --git a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_bsd.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_bsd.go
new file mode 100644
index 0000000000000000000000000000000000000000..d5c9c321ed2cc7be561e1d00d9cfd8acaf1320e9
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_bsd.go differ
diff --git a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_linux.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_linux.go
new file mode 100644
index 0000000000000000000000000000000000000000..c82e57df85ef0ece67c05c6ee7cb7cbf36347396
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_dirent_namlen_linux.go differ
diff --git a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_portable.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_portable.go
new file mode 100644
index 0000000000000000000000000000000000000000..085d311600be88e6c9f8ab67226c93f895143ced
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_portable.go differ
diff --git a/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_unix.go b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_unix.go
new file mode 100644
index 0000000000000000000000000000000000000000..58bd87841e1f0ea39b67290101333662e4995f6d
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/fastwalk/fastwalk_unix.go differ
diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go
new file mode 100644
index 0000000000000000000000000000000000000000..f75336834658436e6eda0c495abf952be2f0d35b
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/gocommand/invoke.go differ
diff --git a/vendor/golang.org/x/tools/internal/gocommand/vendor.go b/vendor/golang.org/x/tools/internal/gocommand/vendor.go
new file mode 100644
index 0000000000000000000000000000000000000000..2d3d408c0bed3f2ce5fd6fe52ec280b3e3848e4e
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/gocommand/vendor.go differ
diff --git a/vendor/golang.org/x/tools/internal/gocommand/version.go b/vendor/golang.org/x/tools/internal/gocommand/version.go
new file mode 100644
index 0000000000000000000000000000000000000000..7130436802070d6ecacf940a9baf84661e49ed93
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/gocommand/version.go differ
diff --git a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go
new file mode 100644
index 0000000000000000000000000000000000000000..925ff53560ad4da2c4fdc40ea15184a813790499
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go differ
diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go
new file mode 100644
index 0000000000000000000000000000000000000000..d859617b77452019e9be84cd50f3764448e7fb63
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/imports/fix.go differ
diff --git a/vendor/golang.org/x/tools/internal/imports/imports.go b/vendor/golang.org/x/tools/internal/imports/imports.go
new file mode 100644
index 0000000000000000000000000000000000000000..25973989e620ebefeaa3b8baa56f10db2765efc4
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/imports/imports.go differ
diff --git a/vendor/golang.org/x/tools/internal/imports/mod.go b/vendor/golang.org/x/tools/internal/imports/mod.go
new file mode 100644
index 0000000000000000000000000000000000000000..2bcf41f5fa7107486c728d51743927be909b4908
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/imports/mod.go differ
diff --git a/vendor/golang.org/x/tools/internal/imports/mod_cache.go b/vendor/golang.org/x/tools/internal/imports/mod_cache.go
new file mode 100644
index 0000000000000000000000000000000000000000..18dada495ca8acd709942e508c6b6ce76d5ab7ef
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/imports/mod_cache.go differ
diff --git a/vendor/golang.org/x/tools/internal/imports/sortimports.go b/vendor/golang.org/x/tools/internal/imports/sortimports.go
new file mode 100644
index 0000000000000000000000000000000000000000..dc52372e48aea130a3d3c33082fc35cb93976d27
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/imports/sortimports.go differ
diff --git a/vendor/golang.org/x/tools/internal/imports/zstdlib.go b/vendor/golang.org/x/tools/internal/imports/zstdlib.go
new file mode 100644
index 0000000000000000000000000000000000000000..7de2be9b4b7f51516424d7fab441b767e5f6e66a
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/imports/zstdlib.go differ
diff --git a/vendor/golang.org/x/tools/internal/packagesinternal/packages.go b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go
new file mode 100644
index 0000000000000000000000000000000000000000..9702094c59edd4d8bf06196d717d5a2f6f2c22cd
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go differ
diff --git a/vendor/golang.org/x/tools/internal/typeparams/common.go b/vendor/golang.org/x/tools/internal/typeparams/common.go
new file mode 100644
index 0000000000000000000000000000000000000000..ab6b30b83e45bdc3dbaed76ed63dd9d516ad33b8
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typeparams/common.go differ
diff --git a/vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go b/vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go
new file mode 100644
index 0000000000000000000000000000000000000000..18212390e19278270d811366bb6d851f5cfecb29
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typeparams/enabled_go117.go differ
diff --git a/vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go b/vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go
new file mode 100644
index 0000000000000000000000000000000000000000..d67148823c4d65713e6ed2a74725b61264fc3b6e
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typeparams/enabled_go118.go differ
diff --git a/vendor/golang.org/x/tools/internal/typeparams/normalize.go b/vendor/golang.org/x/tools/internal/typeparams/normalize.go
new file mode 100644
index 0000000000000000000000000000000000000000..090f142a5f34b4ad4c9ccadeb626ec99b1ba21b3
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typeparams/normalize.go differ
diff --git a/vendor/golang.org/x/tools/internal/typeparams/termlist.go b/vendor/golang.org/x/tools/internal/typeparams/termlist.go
new file mode 100644
index 0000000000000000000000000000000000000000..10857d504c4faf4fb00998d7c97092c0e08423fa
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typeparams/termlist.go differ
diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go
new file mode 100644
index 0000000000000000000000000000000000000000..b4788978ff4b68cac849d79c6ec3820e7093200f
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go117.go differ
diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go
new file mode 100644
index 0000000000000000000000000000000000000000..114a36b866bc039b99cb2bfe37e8b5a5d0a1d245
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typeparams/typeparams_go118.go differ
diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go
new file mode 100644
index 0000000000000000000000000000000000000000..7ddee28d98754af18a26750a839f1c385aa69795
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go differ
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go
new file mode 100644
index 0000000000000000000000000000000000000000..d38ee3c27cd658f5683ca913ee2526ddd9e229e4
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go differ
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go b/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go
new file mode 100644
index 0000000000000000000000000000000000000000..de90e9515ae58798a7e4c15eba62f6aa9b635e7c
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go differ
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types.go b/vendor/golang.org/x/tools/internal/typesinternal/types.go
new file mode 100644
index 0000000000000000000000000000000000000000..ce7d4351b2203af122e6fc05506203736807736a
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typesinternal/types.go differ
diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types_118.go b/vendor/golang.org/x/tools/internal/typesinternal/types_118.go
new file mode 100644
index 0000000000000000000000000000000000000000..a42b072a67d3b5fcec1e3666241d5d85f47b5d82
Binary files /dev/null and b/vendor/golang.org/x/tools/internal/typesinternal/types_118.go differ
diff --git a/vendor/golang.org/x/xerrors/LICENSE b/vendor/golang.org/x/xerrors/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..e4a47e17f143b5b29fb29b6c23421ac67e4a6154
Binary files /dev/null and b/vendor/golang.org/x/xerrors/LICENSE differ
diff --git a/vendor/golang.org/x/xerrors/PATENTS b/vendor/golang.org/x/xerrors/PATENTS
new file mode 100644
index 0000000000000000000000000000000000000000..733099041f84fa1e58611ab2e11af51c1f26d1d2
Binary files /dev/null and b/vendor/golang.org/x/xerrors/PATENTS differ
diff --git a/vendor/golang.org/x/xerrors/README b/vendor/golang.org/x/xerrors/README
new file mode 100644
index 0000000000000000000000000000000000000000..aac7867a560b8f999243acd99b75af4d56ffe119
Binary files /dev/null and b/vendor/golang.org/x/xerrors/README differ
diff --git a/vendor/golang.org/x/xerrors/adaptor.go b/vendor/golang.org/x/xerrors/adaptor.go
new file mode 100644
index 0000000000000000000000000000000000000000..4317f2483313167ef4577dc668e3a7270066f6d6
Binary files /dev/null and b/vendor/golang.org/x/xerrors/adaptor.go differ
diff --git a/vendor/golang.org/x/xerrors/codereview.cfg b/vendor/golang.org/x/xerrors/codereview.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..3f8b14b64e83f940ab7b05e8c542fd821b376d3f
Binary files /dev/null and b/vendor/golang.org/x/xerrors/codereview.cfg differ
diff --git a/vendor/golang.org/x/xerrors/doc.go b/vendor/golang.org/x/xerrors/doc.go
new file mode 100644
index 0000000000000000000000000000000000000000..2ef99f5a87bf5b8397495ba49d5db417739e22cd
Binary files /dev/null and b/vendor/golang.org/x/xerrors/doc.go differ
diff --git a/vendor/golang.org/x/xerrors/errors.go b/vendor/golang.org/x/xerrors/errors.go
new file mode 100644
index 0000000000000000000000000000000000000000..e88d3772d8611f90009664490c88e6ae1634dd72
Binary files /dev/null and b/vendor/golang.org/x/xerrors/errors.go differ
diff --git a/vendor/golang.org/x/xerrors/fmt.go b/vendor/golang.org/x/xerrors/fmt.go
new file mode 100644
index 0000000000000000000000000000000000000000..6df18669fac3eac0abdd93b0e6a8d0611a4ee19d
Binary files /dev/null and b/vendor/golang.org/x/xerrors/fmt.go differ
diff --git a/vendor/golang.org/x/xerrors/format.go b/vendor/golang.org/x/xerrors/format.go
new file mode 100644
index 0000000000000000000000000000000000000000..1bc9c26b97fdfba224fc44b18b31f0dbc90d35d2
Binary files /dev/null and b/vendor/golang.org/x/xerrors/format.go differ
diff --git a/vendor/golang.org/x/xerrors/frame.go b/vendor/golang.org/x/xerrors/frame.go
new file mode 100644
index 0000000000000000000000000000000000000000..0de628ec501f65ba6bd9b9df321f4eb3c8294d2b
Binary files /dev/null and b/vendor/golang.org/x/xerrors/frame.go differ
diff --git a/vendor/golang.org/x/xerrors/internal/internal.go b/vendor/golang.org/x/xerrors/internal/internal.go
new file mode 100644
index 0000000000000000000000000000000000000000..89f4eca5df7bc746a9186e7f071694378ce2f05c
Binary files /dev/null and b/vendor/golang.org/x/xerrors/internal/internal.go differ
diff --git a/vendor/golang.org/x/xerrors/wrap.go b/vendor/golang.org/x/xerrors/wrap.go
new file mode 100644
index 0000000000000000000000000000000000000000..9842758ca7c48d5441d1d2a7a9f48e03021a75eb
Binary files /dev/null and b/vendor/golang.org/x/xerrors/wrap.go differ
diff --git a/vendor/gopkg.in/yaml.v3/LICENSE b/vendor/gopkg.in/yaml.v3/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..2683e4bb1f24c14aa2791e6d48ce0ecf3d8ab756
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/LICENSE differ
diff --git a/vendor/gopkg.in/yaml.v3/NOTICE b/vendor/gopkg.in/yaml.v3/NOTICE
new file mode 100644
index 0000000000000000000000000000000000000000..866d74a7ad79165312a2ce3904b4bdb53e6aedf7
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/NOTICE differ
diff --git a/vendor/gopkg.in/yaml.v3/README.md b/vendor/gopkg.in/yaml.v3/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..08eb1babddfac3d8f4e006448496d0e0d1f8d720
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/README.md differ
diff --git a/vendor/gopkg.in/yaml.v3/apic.go b/vendor/gopkg.in/yaml.v3/apic.go
new file mode 100644
index 0000000000000000000000000000000000000000..ae7d049f182ae2419ded608e4c763487c99dff52
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/apic.go differ
diff --git a/vendor/gopkg.in/yaml.v3/decode.go b/vendor/gopkg.in/yaml.v3/decode.go
new file mode 100644
index 0000000000000000000000000000000000000000..0173b6982e8437ee6b74c2708fc6c2f082ae650e
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/decode.go differ
diff --git a/vendor/gopkg.in/yaml.v3/emitterc.go b/vendor/gopkg.in/yaml.v3/emitterc.go
new file mode 100644
index 0000000000000000000000000000000000000000..0f47c9ca8addf8e9d2e454e02842927ae825d0e9
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/emitterc.go differ
diff --git a/vendor/gopkg.in/yaml.v3/encode.go b/vendor/gopkg.in/yaml.v3/encode.go
new file mode 100644
index 0000000000000000000000000000000000000000..de9e72a3e638d166e96ceab3d77ce59afe6e6f8a
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/encode.go differ
diff --git a/vendor/gopkg.in/yaml.v3/parserc.go b/vendor/gopkg.in/yaml.v3/parserc.go
new file mode 100644
index 0000000000000000000000000000000000000000..268558a0d6328a00db835512ca6d72369e2051d0
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/parserc.go differ
diff --git a/vendor/gopkg.in/yaml.v3/readerc.go b/vendor/gopkg.in/yaml.v3/readerc.go
new file mode 100644
index 0000000000000000000000000000000000000000..b7de0a89c462af605f889bc46ce165e5d4238add
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/readerc.go differ
diff --git a/vendor/gopkg.in/yaml.v3/resolve.go b/vendor/gopkg.in/yaml.v3/resolve.go
new file mode 100644
index 0000000000000000000000000000000000000000..64ae888057a5aa24c5a3a6ca0fcb08a06269e3ad
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/resolve.go differ
diff --git a/vendor/gopkg.in/yaml.v3/scannerc.go b/vendor/gopkg.in/yaml.v3/scannerc.go
new file mode 100644
index 0000000000000000000000000000000000000000..ca0070108f4ebe6a09a222075267e0ffca996e72
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/scannerc.go differ
diff --git a/vendor/gopkg.in/yaml.v3/sorter.go b/vendor/gopkg.in/yaml.v3/sorter.go
new file mode 100644
index 0000000000000000000000000000000000000000..9210ece7e97232891625ed08c549b92c0e9bb169
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/sorter.go differ
diff --git a/vendor/gopkg.in/yaml.v3/writerc.go b/vendor/gopkg.in/yaml.v3/writerc.go
new file mode 100644
index 0000000000000000000000000000000000000000..b8a116bf9a22b9911958f44904289a8c6b482bd2
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/writerc.go differ
diff --git a/vendor/gopkg.in/yaml.v3/yaml.go b/vendor/gopkg.in/yaml.v3/yaml.go
new file mode 100644
index 0000000000000000000000000000000000000000..8cec6da48d3ec4d8858ca622383c75e359faee1f
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/yaml.go differ
diff --git a/vendor/gopkg.in/yaml.v3/yamlh.go b/vendor/gopkg.in/yaml.v3/yamlh.go
new file mode 100644
index 0000000000000000000000000000000000000000..7c6d0077061933c97979f6c84cb659b17391e1a3
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/yamlh.go differ
diff --git a/vendor/gopkg.in/yaml.v3/yamlprivateh.go b/vendor/gopkg.in/yaml.v3/yamlprivateh.go
new file mode 100644
index 0000000000000000000000000000000000000000..e88f9c54aecb54ed42665b2a08b66a4f03d999bc
Binary files /dev/null and b/vendor/gopkg.in/yaml.v3/yamlprivateh.go differ
diff --git a/vendor/modules.txt b/vendor/modules.txt
new file mode 100644
index 0000000000000000000000000000000000000000..65cad9fb48facef58039000b60d5ee60604902c4
Binary files /dev/null and b/vendor/modules.txt differ