diff --git a/.circleci/config.yml b/.circleci/config.yml index 54a9b88e..9a0d6e8d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,18 +1,30 @@ version: 2 jobs: build: - working_directory: /go/src/github.com/Clever/wag + working_directory: ~/go/src/github.com/Clever/wag docker: - - image: circleci/golang:1.16-buster + - image: cimg/go:1.21 environment: CIRCLE_ARTIFACTS: /tmp/circleci-artifacts CIRCLE_TEST_REPORTS: /tmp/circleci-test-results + NODE_VERSION: v7.10.1 + NODE_DISTRO: linux-x64 steps: + # This is horrible, but node v7 is so outdated that there aren't better alternatives. - run: command: |- - sudo apt-get install -y curl - curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - - sudo apt-get install -y nodejs=7.* + wget https://nodejs.org/download/release/$NODE_VERSION/node-$NODE_VERSION-$NODE_DISTRO.tar.gz + sudo mkdir -p /usr/local/lib/nodejs + sudo tar -xf node-$NODE_VERSION-$NODE_DISTRO.tar.gz -C /usr/local/lib/nodejs + sudo chmod -R 777 /usr/local/lib/nodejs + rm node-$NODE_VERSION-$NODE_DISTRO.tar.gz + echo export PATH=/usr/local/lib/nodejs/node-$NODE_VERSION-linux-x64/bin:"$PATH" >> "$BASH_ENV" + source "$BASH_ENV" + npm install -g jsdoc-to-markdown@^4.0.0 + echo export PATH=`pwd`/bin:"$PATH" >> "$BASH_ENV" + source "$BASH_ENV" + + - run: command: cd $HOME && git clone --depth 1 -v https://github.com/Clever/ci-scripts.git && cd ci-scripts && git show --oneline -s name: Clone ci-scripts @@ -21,8 +33,10 @@ jobs: - run: command: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS name: Set up CircleCI artifacts directories - - run: make install_deps - - run: make build - - run: sudo npm install -g jsdoc-to-markdown@^4.0.0 - - run: make test + # Currently have to run this in shell so that it can discover the new PATH changes. + - run: + command: |- + make install_deps + make build + make test - run: if [ "${CIRCLE_BRANCH}" == "master" ]; then make release && $HOME/ci-scripts/circleci/github-release $GH_RELEASE_TOKEN release; fi; diff --git a/Makefile b/Makefile index 3c374e49..2a3bfdf7 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ PKGS := $(shell go list ./... | grep -v /hardcoded | grep -v /tools | grep -v /g VERSION := $(shell head -n 1 VERSION) EXECUTABLE := wag -$(eval $(call golang-version-check,1.16)) +$(eval $(call golang-version-check,1.21)) .PHONY: test build release js-tests jsdoc2md go-generate generate $(PKGS) install_deps diff --git a/VERSION b/VERSION index 046bd16c..2b5e3328 100644 --- a/VERSION +++ b/VERSION @@ -1,4 +1,6 @@ -v9.1.3 +v9.2.0 + +v9.2.0 Update to go 1.21 and fixed a client tracing bug. v9.1.3 Fix for generated code supporting filtering on an enum diff --git a/clientconfig/clientconfig.go b/clientconfig/clientconfig.go index 74ac5302..93aaf85f 100644 --- a/clientconfig/clientconfig.go +++ b/clientconfig/clientconfig.go @@ -18,9 +18,8 @@ func WithoutTracing(wagAppName string) (*logger.Logger, *http.RoundTripper) { func WithTracing(wagAppName string, exporter sdktrace.SpanExporter) (*logger.Logger, *http.RoundTripper) { baseTransport := http.DefaultTransport - tp := newTracerProvider(exporter, wagAppName) - instrumentedTransport := DefaultInstrumentor(baseTransport, *tp) + instrumentedTransport := DefaultInstrumentor(baseTransport, wagAppName) return ClientLogger(wagAppName), &instrumentedTransport } diff --git a/clientconfig/go.mod b/clientconfig/go.mod index 6ceddb0b..0e1d65f2 100644 --- a/clientconfig/go.mod +++ b/clientconfig/go.mod @@ -1,10 +1,9 @@ module github.com/Clever/wag/clientconfig/v9 -go 1.16 +go 1.21 require ( - github.com/Clever/kayvee-go/v7 v7.7.0 - github.com/Clever/wag/logging/wagclientlogger v0.0.0-20230110184825-edb52117e67a // indirect + github.com/Clever/kayvee-go/v7 v7.8.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.35.0 go.opentelemetry.io/otel v1.10.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 @@ -12,3 +11,29 @@ require ( go.opentelemetry.io/otel/sdk v1.10.0 go.opentelemetry.io/otel/trace v1.10.0 ) + +require ( + github.com/Clever/wag/logging/wagclientlogger v0.0.0-20230110184825-edb52117e67a // indirect + github.com/cenkalti/backoff/v4 v4.1.3 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + github.com/xeipuuv/gojsonschema v1.2.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.31.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.31.0 // indirect + go.opentelemetry.io/otel/metric v0.31.0 // indirect + go.opentelemetry.io/otel/sdk/metric v0.31.0 // indirect + go.opentelemetry.io/proto/otlp v0.19.0 // indirect + golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b // indirect + golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 // indirect + golang.org/x/text v0.3.7 // indirect + google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf // indirect + google.golang.org/grpc v1.49.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect +) diff --git a/clientconfig/go.sum b/clientconfig/go.sum index fc124759..1c03b6bb 100644 --- a/clientconfig/go.sum +++ b/clientconfig/go.sum @@ -61,8 +61,6 @@ github.com/Clever/kayvee-go/v7 v7.7.0/go.mod h1:B2IcQE7OK8rpYvDotSAvCtfZqZ1UqTs1 github.com/Clever/wag/logging/wagclientlogger v0.0.0-20220916194010-36f974d66e08/go.mod h1:NPerIFemV/7da/vNGALWkky+mit4ulSa24NSalIXgpo= github.com/Clever/wag/logging/wagclientlogger v0.0.0-20230110184825-edb52117e67a h1:IMRK5WZ0kEFhe4tc/7GNQ4M3JaLCudB+1KsuxvSj97o= github.com/Clever/wag/logging/wagclientlogger v0.0.0-20230110184825-edb52117e67a/go.mod h1:NPerIFemV/7da/vNGALWkky+mit4ulSa24NSalIXgpo= -github.com/Clever/wag/wagclientoptions v0.0.0-20230113003250-c1da74784876 h1:gMxPeeRzq5kh0bfpWzX4N6ZEG/TINEgMd2lsI6fJrP4= -github.com/Clever/wag/wagclientoptions v0.0.0-20230113003250-c1da74784876/go.mod h1:I2Uwa7ZXF3CFy8Khm1i/OT3ZSBGyJvDTQVtmjZvuFGI= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/aws/aws-sdk-go v1.44.89/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= @@ -160,9 +158,8 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -192,7 +189,6 @@ github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/Oth github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= -github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 h1:lLT7ZLSzGLI08vc9cpd+tYmNWjdKDqyr/2L+f6U12Fk= @@ -220,16 +216,14 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -255,10 +249,7 @@ go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRM go.opentelemetry.io/otel v1.9.0/go.mod h1:np4EoPGzoPs3O67xUVNoPPcmSvsfOxNlNA4F4AC+0Eo= go.opentelemetry.io/otel v1.10.0 h1:Y7DTJMR6zs1xkS/upamJYk0SxxN4C9AqRd77jmZnyY4= go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ= -go.opentelemetry.io/otel v1.11.2 h1:YBZcQlsVekzFsFbjygXMOXSs6pialIZxcjfO/mBDmR0= -go.opentelemetry.io/otel v1.11.2/go.mod h1:7p4EUV+AqgdlNV9gL97IgUZiVR3yrFXYo53f9BM3tRI= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.8.0/go.mod h1:78XhIg8Ht9vR4tbLNUhXsiOnE2HOuSeKAiAcoVQEpOY= -go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.9.0 h1:ggqApEjDKczicksfvZUCxuvoyDmR6Sbm56LwiK8DVR0= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.9.0/go.mod h1:78XhIg8Ht9vR4tbLNUhXsiOnE2HOuSeKAiAcoVQEpOY= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 h1:TaB+1rQhddO1sF71MpZOZAuSPW1klK2M8XxfrBMfK7Y= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0/go.mod h1:78XhIg8Ht9vR4tbLNUhXsiOnE2HOuSeKAiAcoVQEpOY= @@ -266,31 +257,22 @@ go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.31.0 h1:H0+xwv4shKw0gfj/Zq go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.31.0/go.mod h1:nkenGD8vcvs0uN6WhR90ZVHQlgDsRmXicnNadMnk+XQ= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.31.0 h1:BaQ2xM5cPmldVCMvbLoy5tcLUhXCtIhItDYBNw83B7Y= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.31.0/go.mod h1:VRr8tlXQEsTdesDCh0qBe2iKDWhpi3ZqDYw6VlZ8MhI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.9.0 h1:NN90Cuna0CnBg8YNu1Q0V35i2E8LDByFOwHRCq/ZP9I= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.9.0/go.mod h1:0EsCXjZAiiZGnLdEUXM9YjCKuuLZMYyglh2QDXcYKVA= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 h1:pDDYmo0QadUPal5fwXoY1pmMpFcdyhXOmL5drCrI3vU= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0/go.mod h1:Krqnjl22jUJ0HgMzw5eveuCvFDXY4nSYb4F8t5gdrag= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.9.0 h1:M0/hqGuJBLeIEu20f89H74RGtqV2dn+SFWEz9ATAAwY= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.9.0/go.mod h1:K5G92gbtCrYJ0mn6zj9Pst7YFsDFuvSYEhYKRMcufnM= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 h1:KtiUEhQmj/Pa874bVYKGNVdq8NPKiacPbaRRtgXi+t4= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0/go.mod h1:OfUCyyIiDvNXHWpcWgbF+MWvqPZiNa3YDEnivcnYsV0= go.opentelemetry.io/otel/metric v0.31.0 h1:6SiklT+gfWAwWUR0meEMxQBtihpiEs4c+vL9spDTqUs= go.opentelemetry.io/otel/metric v0.31.0/go.mod h1:ohmwj9KTSIeBnDBm/ZwH2PSZxZzoOaG2xZeekTRzL5A= go.opentelemetry.io/otel/sdk v1.8.0/go.mod h1:uPSfc+yfDH2StDM/Rm35WE8gXSNdvCg023J6HeGNO0c= -go.opentelemetry.io/otel/sdk v1.9.0 h1:LNXp1vrr83fNXTHgU8eO89mhzxb/bbWAsHG6fNf3qWo= go.opentelemetry.io/otel/sdk v1.9.0/go.mod h1:AEZc8nt5bd2F7BC24J5R0mrjYnpEgYHyTcM/vrSple4= go.opentelemetry.io/otel/sdk v1.10.0 h1:jZ6K7sVn04kk/3DNUdJ4mqRlGDiXAVuIG+MMENpTNdY= go.opentelemetry.io/otel/sdk v1.10.0/go.mod h1:vO06iKzD5baltJz1zarxMCNHFpUlUiOy4s65ECtn6kE= -go.opentelemetry.io/otel/sdk v1.11.2 h1:GF4JoaEx7iihdMFu30sOyRx52HDHOkl9xQ8SMqNXUiU= -go.opentelemetry.io/otel/sdk v1.11.2/go.mod h1:wZ1WxImwpq+lVRo4vsmSOxdd+xwoUJ6rqyLc3SyX9aU= go.opentelemetry.io/otel/sdk/metric v0.31.0 h1:2sZx4R43ZMhJdteKAlKoHvRgrMp53V1aRxvEf5lCq8Q= go.opentelemetry.io/otel/sdk/metric v0.31.0/go.mod h1:fl0SmNnX9mN9xgU6OLYLMBMrNAsaZQi7qBwprwO3abk= go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4= go.opentelemetry.io/otel/trace v1.9.0/go.mod h1:2737Q0MuG8q1uILYm2YYVkAyLtOofiTNGg6VODnOiPo= go.opentelemetry.io/otel/trace v1.10.0 h1:npQMbR8o7mum8uF95yFbOEJffhs1sbCOfDh8zAJiH5E= go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM= -go.opentelemetry.io/otel/trace v1.11.2 h1:Xf7hWSF2Glv0DE3MH7fBHvtpSBsjcBUe5MYAmZM/+y0= -go.opentelemetry.io/otel/trace v1.11.2/go.mod h1:4N+yC7QEz7TTsG9BSRLNAa63eg5E06ObSbKPmxQ/pKA= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.18.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw= @@ -476,8 +458,6 @@ golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 h1:v6hYoSR9T5oet+pMXwUWkbiVqx/63mlHjefrHmxwfeY= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8 h1:h+EGohizhe9XlX18rfpa8k8RAc5XyaeamM+0VHRd4lc= -golang.org/x/sys v0.0.0-20220919091848-fb04ddd9f9c8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/clientconfig/tracing.go b/clientconfig/tracing.go index 5ac6f2f2..611549c1 100644 --- a/clientconfig/tracing.go +++ b/clientconfig/tracing.go @@ -11,9 +11,7 @@ import ( "go.opentelemetry.io/otel/exporters/otlp/otlptrace" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" "go.opentelemetry.io/otel/propagation" - "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" - semconv "go.opentelemetry.io/otel/semconv/v1.10.0" "go.opentelemetry.io/otel/trace" ) @@ -72,19 +70,20 @@ func OtlpGrpcExporter(ctx context.Context, opts ...Option) (sdktrace.SpanExporte // It takes in a transport to wrap, e.g. http.DefaultTransport, and the request // context value to pull the span name out from. // 99% sure this is wrapping a wrapped thing and totally redundant. Fix later. -func DefaultInstrumentor(baseTransport http.RoundTripper, tp sdktrace.TracerProvider) http.RoundTripper { - return roundTripperWithTracing{baseTransport: baseTransport, tp: tp} +func DefaultInstrumentor(baseTransport http.RoundTripper, appName string) http.RoundTripper { + return roundTripperWithTracing{baseTransport: baseTransport, appName: appName} } type roundTripperWithTracing struct { baseTransport http.RoundTripper - tp sdktrace.TracerProvider + appName string } func (rt roundTripperWithTracing) RoundTrip(r *http.Request) (*http.Response, error) { return otelhttp.NewTransport( rt.baseTransport, otelhttp.WithTracerProvider(otel.GetTracerProvider()), + otelhttp.WithServiceName(rt.appName), otelhttp.WithPropagators(propagator), otelhttp.WithSpanNameFormatter(func(method string, r *http.Request) string { v, ok := r.Context().Value("otelSpanName").(string) @@ -105,38 +104,3 @@ func ExtractSpanAndTraceID(r *http.Request) (traceID, spanID string) { sc := trace.SpanContextFromContext(propagator.Extract(r.Context(), propagation.HeaderCarrier(r.Header))) return sc.SpanID().String(), sc.TraceID().String() } - -// newResource returns a resource describing this application. -// Used for setting up tracer provider -func newResource(appName string) *resource.Resource { - r, _ := resource.Merge( - resource.Default(), - resource.NewWithAttributes( - semconv.SchemaURL, - semconv.ServiceNameKey.String(appName), - ), - ) - return r -} - -func newTracerProvider(exporter sdktrace.SpanExporter, appName string) *sdktrace.TracerProvider { - tp := sdktrace.NewTracerProvider( - // We use the default ID generator. In order for sampling to work (at least with this sampler) - // the ID generator must generate trace IDs uniformly at random from the entire space of uint64. - // For example, the default x-ray ID generator does not do this. - sdktrace.WithSampler(sdktrace.AlwaysSample()), - // These maximums are to guard against something going wrong and sending a ton of data unexpectedly - sdktrace.WithRawSpanLimits(sdktrace.SpanLimits{ - AttributeCountLimit: 100, - EventCountLimit: 100, - LinkCountLimit: 100, - }), - //Batcher is more efficient, switch to it after testing - // sdktrace.WithSyncer(exporter), - sdktrace.WithBatcher(exporter), - sdktrace.WithResource(newResource(appName)), - ) - otel.SetTracerProvider(tp) - otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) - return tp -} diff --git a/clients/go/gengo.go b/clients/go/gengo.go index 411c2bbe..033ae0f6 100644 --- a/clients/go/gengo.go +++ b/clients/go/gengo.go @@ -274,7 +274,7 @@ func CreateModFile(path string, basePath string, codeTemplate clientCodeTemplate modFileString := ` module ` + codeTemplate.ModuleName + codeTemplate.OutputPath + `/client` + codeTemplate.VersionSuffix + ` -go 1.16 +go 1.21 require ( github.com/Clever/discovery-go v1.8.1 diff --git a/go.mod b/go.mod index 4993c6e0..d0a208af 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/Clever/wag/v9 -go 1.16 +go 1.21 require ( github.com/Clever/go-utils v0.0.0-20180917210021-2dac0ec6f2ac @@ -14,15 +14,45 @@ require ( github.com/go-openapi/validate v0.19.15 github.com/go-swagger/go-swagger v0.23.0 github.com/golang/mock v1.6.0 + github.com/kevinburke/go-bindata v3.24.0+incompatible + github.com/stretchr/testify v1.8.2 +) + +require ( + github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/fsnotify/fsnotify v1.4.9 // indirect + github.com/go-openapi/analysis v0.19.10 // indirect + github.com/go-openapi/inflect v0.19.0 // indirect + github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/go-openapi/runtime v0.19.12 // indirect + github.com/go-stack/stack v1.8.0 // indirect github.com/google/go-cmp v0.5.8 // indirect github.com/google/uuid v1.1.2 // indirect - github.com/kevinburke/go-bindata v3.24.0+incompatible + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/josharian/intern v1.0.0 // indirect github.com/kr/pretty v0.3.0 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/magiconair/properties v1.8.1 // indirect + github.com/mailru/easyjson v0.7.6 // indirect + github.com/mitchellh/mapstructure v1.1.2 // indirect github.com/pelletier/go-toml v1.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect github.com/rogpeppe/go-internal v1.8.1 // indirect - github.com/stretchr/testify v1.8.2 + github.com/spf13/afero v1.2.2 // indirect + github.com/spf13/cast v1.3.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/viper v1.6.2 // indirect + github.com/subosito/gotenv v1.2.0 // indirect + go.mongodb.org/mongo-driver v1.3.1 // indirect + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 // indirect + golang.org/x/text v0.3.7 // indirect golang.org/x/tools v0.1.13-0.20220908144252-ce397412b6a4 // indirect + gopkg.in/ini.v1 v1.54.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) // For validate, something seems to have broken or changed between this pinned version and 0.16.0 (commit 7c1911976134d3a24d0c03127505163c9f16aa3b) diff --git a/go.sum b/go.sum index e7e80dfd..260e5572 100644 --- a/go.sum +++ b/go.sum @@ -281,7 +281,6 @@ github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= @@ -298,7 +297,6 @@ golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200311171314-f7b00557c8c4/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -321,9 +319,7 @@ golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -334,7 +330,6 @@ golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20170814044513-c84c1ab9fd18/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -352,13 +347,9 @@ golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7w 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-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 h1:v6hYoSR9T5oet+pMXwUWkbiVqx/63mlHjefrHmxwfeY= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.0.0-20170814122439-e56139fd9c5b/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= diff --git a/golang.mk b/golang.mk index c4b6a4aa..db819557 100644 --- a/golang.mk +++ b/golang.mk @@ -1,7 +1,7 @@ # This is the default Clever Golang Makefile. # It is stored in the dev-handbook repo, github.com/Clever/dev-handbook # Please do not alter this file directly. -GOLANG_MK_VERSION := 1.0.1 +GOLANG_MK_VERSION := 1.2.1 SHELL := /bin/bash SYSTEM := $(shell uname -a | cut -d" " -f1 | tr '[:upper:]' '[:lower:]') @@ -47,6 +47,8 @@ golang-ensure-curl-installed: # Golint is a tool for linting Golang code for common errors. # We pin its version because an update could add a new lint check which would make # previously passing tests start failing without changing our code. +# this package is deprecated and frozen +# Infra recomendation is to eventaully move to https://github.com/golangci/golangci-lint so don't fail on linting error for now GOLINT := $(GOPATH)/bin/golint $(GOLINT): go install -mod=readonly golang.org/x/lint/golint@738671d3881b9731cc63024d5d88cf28db875626 @@ -74,14 +76,6 @@ endef # golang-lint-deps-strict requires the golint tool for golang linting. golang-lint-deps-strict: $(GOLINT) $(FGT) -# golang-lint-strict calls golint on all golang files in the pkg and fails if any lint -# errors are found. -# arg1: pkg path -define golang-lint-strict -@echo "LINTING $(1)..." -@PKG_PATH=$$(go list -f '{{.Dir}}' $(1)); find $${PKG_PATH}/*.go -type f | grep -v gen_ | xargs $(FGT) $(GOLINT) -endef - # golang-test-deps is here for consistency golang-test-deps: @@ -102,6 +96,21 @@ define golang-test-strict @go test -v -race $(1) endef +# golang-test-strict-cover-deps is here for consistency +golang-test-strict-cover-deps: + +# golang-test-strict-cover uses the Go toolchain to run all tests in the pkg with the race and cover flag. +# appends coverage results to coverage.txt +# arg1: pkg path +define golang-test-strict-cover +@echo "TESTING $(1)..." +@go test -v -race -cover -coverprofile=profile.tmp -covermode=atomic $(1) +@if [ -f profile.tmp ]; then \ + cat profile.tmp | tail -n +2 >> coverage.txt; \ + rm profile.tmp; \ +fi; +endef + # golang-vet-deps is here for consistency golang-vet-deps: @@ -132,16 +141,29 @@ golang-test-all-strict-deps: golang-fmt-deps golang-lint-deps-strict golang-test # arg1: pkg path define golang-test-all-strict $(call golang-fmt,$(1)) -$(call golang-lint-strict,$(1)) +$(call golang-lint,$(1)) $(call golang-vet,$(1)) $(call golang-test-strict,$(1)) endef +# golang-test-all-strict-cover-deps: installs all dependencies needed for different test cases. +golang-test-all-strict-cover-deps: golang-fmt-deps golang-lint-deps-strict golang-test-strict-cover-deps golang-vet-deps + +# golang-test-all-strict-cover calls fmt, lint, vet and test on the specified pkg with strict and cover +# requirements that no errors are thrown while linting. +# arg1: pkg path +define golang-test-all-strict-cover +$(call golang-fmt,$(1)) +$(call golang-lint,$(1)) +$(call golang-vet,$(1)) +$(call golang-test-strict-cover,$(1)) +endef + # golang-build: builds a golang binary. ensures CGO build is done during CI. This is needed to make a binary that works with a Docker alpine image. # arg1: pkg path # arg2: executable name define golang-build -@echo "BUILDING..." +@echo "BUILDING $(2)..." @if [ -z "$$CI" ]; then \ go build -o bin/$(2) $(1); \ else \ @@ -150,6 +172,10 @@ else \ fi; endef +# golang-setup-coverage: set up the coverage file +golang-setup-coverage: + @echo "mode: atomic" > coverage.txt + # golang-update-makefile downloads latest version of golang.mk golang-update-makefile: @wget https://raw.githubusercontent.com/Clever/dev-handbook/master/make/golang-v1.mk -O /tmp/golang.mk 2>/dev/null diff --git a/logging/wagclientlogger/go.mod b/logging/wagclientlogger/go.mod index aff9185e..cddb5b17 100644 --- a/logging/wagclientlogger/go.mod +++ b/logging/wagclientlogger/go.mod @@ -1,3 +1,3 @@ module github.com/Clever/wag/logging/wagclientlogger -go 1.16 +go 1.21 diff --git a/logging/wagclientlogger/wagclientlogger.go b/logging/wagclientlogger/wagclientlogger.go index 33d203ac..ba005861 100644 --- a/logging/wagclientlogger/wagclientlogger.go +++ b/logging/wagclientlogger/wagclientlogger.go @@ -1,14 +1,14 @@ package wagclientlogger -//WagClientLogger provides a minimal interface for a Wag Client Logger +// WagClientLogger provides a minimal interface for a Wag Client Logger type WagClientLogger interface { Log(level LogLevel, message string, pairs map[string]interface{}) } -//M is a convenience type to avoid having to type out map[string]interface{} everytime. +// M is a convenience type to avoid having to type out map[string]interface{} everytime. type M map[string]interface{} -//LogLevel is an enum of valid log levels. +// LogLevel is an enum of valid log levels. type LogLevel int // Constants used to define different LogLevels supported diff --git a/models/genmodels.go b/models/genmodels.go index 712c94aa..a0e7a4bb 100644 --- a/models/genmodels.go +++ b/models/genmodels.go @@ -75,7 +75,7 @@ func CreateModFile(path string, basePath, packageName, outputPath string) error module ` + moduleName + outputPath + `/models` + versionSuffix + ` -go 1.16 +go 1.21 require ( github.com/go-openapi/errors v0.20.2 diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 0967ef42..00000000 --- a/package-lock.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/samples/gen-go-basic/client/go.mod b/samples/gen-go-basic/client/go.mod index d96bf3e2..85a50766 100644 --- a/samples/gen-go-basic/client/go.mod +++ b/samples/gen-go-basic/client/go.mod @@ -1,7 +1,7 @@ module github.com/Clever/wag/samples/gen-go-basic/client/v9 -go 1.16 +go 1.21 require ( github.com/Clever/discovery-go v1.8.1 diff --git a/samples/gen-go-basic/models/go.mod b/samples/gen-go-basic/models/go.mod index 2ff732f2..8c5042ac 100644 --- a/samples/gen-go-basic/models/go.mod +++ b/samples/gen-go-basic/models/go.mod @@ -2,7 +2,7 @@ module github.com/Clever/wag/samples/gen-go-basic/models/v9 -go 1.16 +go 1.21 require ( github.com/go-openapi/errors v0.20.2 diff --git a/samples/gen-go-blog/client/go.mod b/samples/gen-go-blog/client/go.mod index 56df81c4..4eceea73 100644 --- a/samples/gen-go-blog/client/go.mod +++ b/samples/gen-go-blog/client/go.mod @@ -1,7 +1,7 @@ module github.com/Clever/wag/samples/gen-go-blog/client/v9 -go 1.16 +go 1.21 require ( github.com/Clever/discovery-go v1.8.1 diff --git a/samples/gen-go-blog/models/go.mod b/samples/gen-go-blog/models/go.mod index a9432843..cb55f3cb 100644 --- a/samples/gen-go-blog/models/go.mod +++ b/samples/gen-go-blog/models/go.mod @@ -2,7 +2,7 @@ module github.com/Clever/wag/samples/gen-go-blog/models/v9 -go 1.16 +go 1.21 require ( github.com/go-openapi/errors v0.20.2 diff --git a/samples/gen-go-client-only/client/go.mod b/samples/gen-go-client-only/client/go.mod index fa466dea..7f39be5b 100644 --- a/samples/gen-go-client-only/client/go.mod +++ b/samples/gen-go-client-only/client/go.mod @@ -1,7 +1,7 @@ module github.com/Clever/wag/samples/gen-go-client-only/client/v9 -go 1.16 +go 1.21 require ( github.com/Clever/discovery-go v1.8.1 diff --git a/samples/gen-go-client-only/models/go.mod b/samples/gen-go-client-only/models/go.mod index 185ea505..6a56e0ef 100644 --- a/samples/gen-go-client-only/models/go.mod +++ b/samples/gen-go-client-only/models/go.mod @@ -2,7 +2,7 @@ module github.com/Clever/wag/samples/gen-go-client-only/models/v9 -go 1.16 +go 1.21 require ( github.com/go-openapi/errors v0.20.2 diff --git a/samples/gen-go-db-custom-path/client/go.mod b/samples/gen-go-db-custom-path/client/go.mod index b1cac0ee..fc615e4f 100644 --- a/samples/gen-go-db-custom-path/client/go.mod +++ b/samples/gen-go-db-custom-path/client/go.mod @@ -1,7 +1,7 @@ module github.com/Clever/wag/samples/gen-go-db-custom-path/client/v9 -go 1.16 +go 1.21 require ( github.com/Clever/discovery-go v1.8.1 diff --git a/samples/gen-go-db-custom-path/models/go.mod b/samples/gen-go-db-custom-path/models/go.mod index 4e49cb61..fa1be310 100644 --- a/samples/gen-go-db-custom-path/models/go.mod +++ b/samples/gen-go-db-custom-path/models/go.mod @@ -2,7 +2,7 @@ module github.com/Clever/wag/samples/gen-go-db-custom-path/models/v9 -go 1.16 +go 1.21 require ( github.com/go-openapi/errors v0.20.2 diff --git a/samples/gen-go-db-only/models/go.mod b/samples/gen-go-db-only/models/go.mod index c9a058a7..14506d4e 100644 --- a/samples/gen-go-db-only/models/go.mod +++ b/samples/gen-go-db-only/models/go.mod @@ -2,7 +2,7 @@ module github.com/Clever/wag/samples/gen-go-db-only/models/v9 -go 1.16 +go 1.21 require ( github.com/go-openapi/errors v0.20.2 diff --git a/samples/gen-go-db/client/go.mod b/samples/gen-go-db/client/go.mod index d4d09425..06701c19 100644 --- a/samples/gen-go-db/client/go.mod +++ b/samples/gen-go-db/client/go.mod @@ -1,7 +1,7 @@ module github.com/Clever/wag/samples/gen-go-db/client/v9 -go 1.16 +go 1.21 require ( github.com/Clever/discovery-go v1.8.1 diff --git a/samples/gen-go-db/models/go.mod b/samples/gen-go-db/models/go.mod index 3efaebed..d95e8932 100644 --- a/samples/gen-go-db/models/go.mod +++ b/samples/gen-go-db/models/go.mod @@ -2,7 +2,7 @@ module github.com/Clever/wag/samples/gen-go-db/models/v9 -go 1.16 +go 1.21 require ( github.com/go-openapi/errors v0.20.2 diff --git a/samples/gen-go-deprecated/client/go.mod b/samples/gen-go-deprecated/client/go.mod index 2263d0ab..7c34e1cb 100644 --- a/samples/gen-go-deprecated/client/go.mod +++ b/samples/gen-go-deprecated/client/go.mod @@ -1,7 +1,7 @@ module github.com/Clever/wag/samples/gen-go-deprecated/client/v9 -go 1.16 +go 1.21 require ( github.com/Clever/discovery-go v1.8.1 diff --git a/samples/gen-go-deprecated/models/go.mod b/samples/gen-go-deprecated/models/go.mod index b40231de..2766e5a2 100644 --- a/samples/gen-go-deprecated/models/go.mod +++ b/samples/gen-go-deprecated/models/go.mod @@ -2,7 +2,7 @@ module github.com/Clever/wag/samples/gen-go-deprecated/models/v9 -go 1.16 +go 1.21 require ( github.com/go-openapi/errors v0.20.2 diff --git a/samples/gen-go-errors/client/go.mod b/samples/gen-go-errors/client/go.mod index c26f1350..077e2f0e 100644 --- a/samples/gen-go-errors/client/go.mod +++ b/samples/gen-go-errors/client/go.mod @@ -1,7 +1,7 @@ module github.com/Clever/wag/samples/gen-go-errors/client/v9 -go 1.16 +go 1.21 require ( github.com/Clever/discovery-go v1.8.1 diff --git a/samples/gen-go-errors/models/go.mod b/samples/gen-go-errors/models/go.mod index 83de9def..a937c164 100644 --- a/samples/gen-go-errors/models/go.mod +++ b/samples/gen-go-errors/models/go.mod @@ -2,7 +2,7 @@ module github.com/Clever/wag/samples/gen-go-errors/models/v9 -go 1.16 +go 1.21 require ( github.com/go-openapi/errors v0.20.2 diff --git a/samples/gen-go-nils/client/go.mod b/samples/gen-go-nils/client/go.mod index 64bede37..2d987a6d 100644 --- a/samples/gen-go-nils/client/go.mod +++ b/samples/gen-go-nils/client/go.mod @@ -1,7 +1,7 @@ module github.com/Clever/wag/samples/gen-go-nils/client/v9 -go 1.16 +go 1.21 require ( github.com/Clever/discovery-go v1.8.1 diff --git a/samples/gen-go-nils/models/go.mod b/samples/gen-go-nils/models/go.mod index eec90a91..a109b07b 100644 --- a/samples/gen-go-nils/models/go.mod +++ b/samples/gen-go-nils/models/go.mod @@ -2,7 +2,7 @@ module github.com/Clever/wag/samples/gen-go-nils/models/v9 -go 1.16 +go 1.21 require ( github.com/go-openapi/errors v0.20.2 diff --git a/samples/go.mod b/samples/go.mod index 8d3a1a4a..554bc373 100644 --- a/samples/go.mod +++ b/samples/go.mod @@ -1,6 +1,8 @@ module github.com/Clever/wag/samples/v9 -go 1.16 +go 1.21 + +toolchain go1.21.0 require ( github.com/Clever/go-process-metrics v0.4.0 @@ -20,9 +22,6 @@ require ( github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 github.com/aws/aws-sdk-go v1.44.89 github.com/go-errors/errors v1.1.1 - github.com/go-openapi/loads v0.21.2 // indirect - github.com/go-openapi/runtime v0.24.1 // indirect - github.com/go-openapi/spec v0.20.7 // indirect github.com/go-openapi/strfmt v0.21.3 github.com/go-openapi/swag v0.22.3 github.com/golang/mock v1.6.0 @@ -30,19 +29,252 @@ require ( github.com/gorilla/mux v1.8.0 github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0 github.com/stretchr/testify v1.8.2 - github.com/tidwall/pretty v1.2.0 // indirect - go.mongodb.org/mongo-driver v1.10.1 // indirect go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux v0.34.0 go.opentelemetry.io/otel v1.10.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.10.0 go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.10.0 - go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.10.0 // indirect go.opentelemetry.io/otel/sdk v1.10.0 go.opentelemetry.io/otel/trace v1.10.0 golang.org/x/time v0.0.0-20191024005414-555d28b269f0 golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f gopkg.in/Clever/kayvee-go.v6 v6.27.0 +) +require ( + cloud.google.com/go v0.102.0 // indirect + cloud.google.com/go/bigquery v1.8.0 // indirect + cloud.google.com/go/compute v1.7.0 // indirect + cloud.google.com/go/datastore v1.1.0 // indirect + cloud.google.com/go/iam v0.3.0 // indirect + cloud.google.com/go/pubsub v1.3.1 // indirect + cloud.google.com/go/storage v1.22.1 // indirect + dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9 // indirect + github.com/BurntSushi/toml v0.3.1 // indirect + github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802 // indirect + github.com/Clever/discovery-go v1.8.1 // indirect + github.com/Clever/go-utils v0.0.0-20180917210021-2dac0ec6f2ac // indirect + github.com/Clever/wag/logging/wagclientlogger v0.0.0-20221024182247-2bf828ef51be // indirect + github.com/OneOfOne/xxhash v1.2.2 // indirect + github.com/PuerkitoBio/purell v1.1.1 // indirect + github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect + github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc // indirect + github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf // indirect + github.com/antihax/optional v1.0.0 // indirect + github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 // indirect + github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect + github.com/awslabs/goformation/v2 v2.3.1 // indirect + github.com/benbjohnson/clock v1.3.0 // indirect + github.com/beorn7/perks v1.0.0 // indirect + github.com/cenkalti/backoff/v4 v4.1.3 // indirect + github.com/census-instrumentation/opencensus-proto v0.2.1 // indirect + github.com/cespare/xxhash v1.1.0 // indirect + github.com/cespare/xxhash/v2 v2.1.1 // indirect + github.com/chzyer/logex v1.1.10 // indirect + github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect + github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1 // indirect + github.com/client9/misspell v0.3.4 // indirect + github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4 // indirect + github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1 // indirect + github.com/corbym/gocrest v1.0.3 // indirect + github.com/coreos/bbolt v1.3.2 // indirect + github.com/coreos/etcd v3.3.10+incompatible // indirect + github.com/coreos/go-oidc v2.2.1+incompatible // indirect + github.com/coreos/go-semver v0.2.0 // indirect + github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e // indirect + github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect + github.com/creack/pty v1.1.9 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect + github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954 // indirect + github.com/docker/go-units v0.4.0 // indirect + github.com/donovanhide/eventsource v0.0.0-20171031113327-3ed64d21fb0b // indirect + github.com/eapache/go-resiliency v1.3.0 // indirect + github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1 // indirect + github.com/envoyproxy/protoc-gen-validate v0.1.0 // indirect + github.com/felixge/httpsnoop v1.0.3 // indirect + github.com/fsnotify/fsnotify v1.4.9 // indirect + github.com/ghodss/yaml v1.0.0 // indirect + github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb // indirect + github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1 // indirect + github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4 // indirect + github.com/go-kit/kit v0.8.0 // indirect + github.com/go-logfmt/logfmt v0.4.0 // indirect + github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-openapi/analysis v0.21.4 // indirect + github.com/go-openapi/errors v0.20.2 // indirect + github.com/go-openapi/inflect v0.19.0 // indirect + github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect + github.com/go-openapi/loads v0.21.2 // indirect + github.com/go-openapi/runtime v0.24.1 // indirect + github.com/go-openapi/spec v0.20.7 // indirect + github.com/go-openapi/validate v0.22.0 // indirect + github.com/go-sql-driver/mysql v1.5.0 // indirect + github.com/go-stack/stack v1.8.1 // indirect + github.com/go-swagger/go-swagger v0.23.0 // indirect + github.com/go-swagger/scan-repo-boundary v0.0.0-20180623220736-973b3573c013 // indirect + github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd // indirect + github.com/gobuffalo/depgen v0.1.0 // indirect + github.com/gobuffalo/envy v1.7.0 // indirect + github.com/gobuffalo/flect v0.1.3 // indirect + github.com/gobuffalo/genny v0.1.1 // indirect + github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211 // indirect + github.com/gobuffalo/gogen v0.1.1 // indirect + github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2 // indirect + github.com/gobuffalo/mapi v1.0.2 // indirect + github.com/gobuffalo/packd v0.1.0 // indirect + github.com/gobuffalo/packr/v2 v2.2.0 // indirect + github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754 // indirect + github.com/gogo/protobuf v1.2.1 // indirect + github.com/golang/glog v1.0.0 // indirect + github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/snappy v0.0.3 // indirect + github.com/google/btree v1.0.0 // indirect + github.com/google/go-cmp v0.5.8 // indirect + github.com/google/martian v2.1.0+incompatible // indirect + github.com/google/martian/v3 v3.2.1 // indirect + github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect + github.com/google/renameio v0.1.0 // indirect + github.com/google/uuid v1.1.2 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa // indirect + github.com/googleapis/gax-go/v2 v2.4.0 // indirect + github.com/googleapis/go-type-adapters v1.0.0 // indirect + github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 // indirect + github.com/gorilla/websocket v1.4.0 // indirect + github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 // indirect + github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 // indirect + github.com/hashicorp/golang-lru v0.5.1 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639 // indirect + github.com/imdario/mergo v0.3.6 // indirect + github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/jessevdk/go-flags v1.4.0 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/jmespath/go-jmespath/internal/testify v1.5.1 // indirect + github.com/joho/godotenv v1.3.0 // indirect + github.com/jonboulle/clockwork v0.1.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/jstemmer/go-junit-report v0.9.1 // indirect + github.com/jtolds/gls v4.20.0+incompatible // indirect + github.com/julienschmidt/httprouter v1.2.0 // indirect + github.com/karrick/godirwalk v1.10.3 // indirect + github.com/kevinburke/go-bindata v3.24.0+incompatible // indirect + github.com/kisielk/errcheck v1.2.0 // indirect + github.com/kisielk/gotool v1.0.0 // indirect + github.com/klauspost/compress v1.13.6 // indirect + github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect + github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 // indirect + github.com/kr/pretty v0.3.0 // indirect + github.com/kr/pty v1.1.5 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/magiconair/properties v1.8.1 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2 // indirect + github.com/markbates/safe v1.0.1 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect + github.com/mitchellh/mapstructure v1.4.3 // indirect + github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe // indirect + github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223 // indirect + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect + github.com/oklog/ulid v1.3.1 // indirect + github.com/onsi/ginkgo v1.5.0 // indirect + github.com/onsi/gomega v1.2.0 // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pborman/uuid v1.2.0 // indirect + github.com/pelletier/go-toml v1.9.1 // indirect + github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pquerna/cachecontrol v0.0.0-20180517163645-1555304b9b35 // indirect + github.com/prometheus/client_golang v0.9.3 // indirect + github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 // indirect + github.com/prometheus/common v0.4.0 // indirect + github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084 // indirect + github.com/prometheus/tsdb v0.7.1 // indirect + github.com/rogpeppe/fastuuid v1.2.0 // indirect + github.com/rogpeppe/go-internal v1.8.1 // indirect + github.com/sanathkr/go-yaml v0.0.0-20170819195128-ed9d249f429b // indirect + github.com/sanathkr/yaml v0.0.0-20170819201035-0056894fa522 // indirect + github.com/sirupsen/logrus v1.4.2 // indirect + github.com/smartystreets/assertions v1.2.0 // indirect + github.com/smartystreets/goconvey v1.7.2 // indirect + github.com/soheilhy/cmux v0.1.4 // indirect + github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72 // indirect + github.com/spf13/afero v1.2.2 // indirect + github.com/spf13/cast v1.3.1 // indirect + github.com/spf13/cobra v0.0.3 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/viper v1.6.2 // indirect + github.com/stretchr/objx v0.5.0 // indirect + github.com/subosito/gotenv v1.2.0 // indirect + github.com/tidwall/pretty v1.2.0 // indirect + github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect + github.com/toqueteos/webbrowser v1.2.0 // indirect + github.com/ugorji/go v1.1.4 // indirect + github.com/xdg-go/pbkdf2 v1.0.0 // indirect + github.com/xdg-go/scram v1.1.1 // indirect + github.com/xdg-go/stringprep v1.0.3 // indirect + github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c // indirect + github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + github.com/xeipuuv/gojsonschema v1.2.0 // indirect + github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect + github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 // indirect + github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect + github.com/yuin/goldmark v1.4.13 // indirect + go.etcd.io/bbolt v1.3.2 // indirect + go.mongodb.org/mongo-driver v1.10.1 // indirect + go.opencensus.io v0.23.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.31.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.31.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.10.0 // indirect + go.opentelemetry.io/otel/internal/metric v0.26.0 // indirect + go.opentelemetry.io/otel/metric v0.31.0 // indirect + go.opentelemetry.io/otel/sdk/export/metric v0.26.0 // indirect + go.opentelemetry.io/otel/sdk/metric v0.31.0 // indirect + go.opentelemetry.io/proto/otlp v0.19.0 // indirect + go.uber.org/atomic v1.4.0 // indirect + go.uber.org/goleak v1.1.12 // indirect + go.uber.org/multierr v1.1.0 // indirect + go.uber.org/zap v1.10.0 // indirect + golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d // indirect + golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6 // indirect + golang.org/x/image v0.0.0-20190802002840-cff245a6509b // indirect + golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect + golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028 // indirect + golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect + golang.org/x/net v0.0.0-20220826154423-83b083e8dc8b // indirect + golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094 // indirect + golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect + golang.org/x/sys v0.0.0-20220829200755-d48e67d00261 // indirect + golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect + golang.org/x/text v0.3.7 // indirect + golang.org/x/tools v0.1.13-0.20220908144252-ce397412b6a4 // indirect + google.golang.org/api v0.84.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf // indirect + google.golang.org/grpc v1.49.0 // indirect + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect + gopkg.in/alecthomas/kingpin.v2 v2.2.6 // indirect + gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect + gopkg.in/errgo.v2 v2.1.0 // indirect + gopkg.in/ini.v1 v1.54.0 // indirect + gopkg.in/resty.v1 v1.12.0 // indirect + gopkg.in/square/go-jose.v2 v2.4.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + honnef.co/go/tools v0.0.1-2020.1.4 // indirect + rsc.io/binaryregexp v0.2.0 // indirect + rsc.io/quote/v3 v3.1.0 // indirect + rsc.io/sampler v1.3.0 // indirect ) replace github.com/go-openapi/validate => github.com/go-openapi/validate v0.0.0-20180703152151-9a6e517cddf1 // pre-modules tag 0.15.0x diff --git a/samples/test/js/package-lock.json b/samples/test/js/package-lock.json index 47b04b4e..e22771ea 100644 --- a/samples/test/js/package-lock.json +++ b/samples/test/js/package-lock.json @@ -23,7 +23,7 @@ }, "../../gen-js": { "name": "swagger-test", - "version": "0.1.0", + "version": "9.0.0", "dependencies": { "async": "^2.1.4", "clever-discovery": "0.0.8", diff --git a/server/gendb/bindata.go b/server/gendb/bindata.go index c6d4910c..9aca26ba 100644 --- a/server/gendb/bindata.go +++ b/server/gendb/bindata.go @@ -4,7 +4,7 @@ // dynamodb.go.tmpl (9.379kB) // dynamodb_test.go.tmpl (3.608kB) // interface.go.tmpl (13.851kB) -// table.go.tmpl (52.182kB) +// table.go.tmpl (52.173kB) // tests.go.tmpl (64.233kB) package gendb @@ -153,7 +153,7 @@ func interfaceGoTmpl() (*asset, error) { return a, nil } -var _tableGoTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3d\x6b\x73\xdb\x38\x92\x9f\xa5\x5f\x81\xe8\x26\x1e\xc9\x2b\xd3\x93\xdc\xd6\xdd\xae\x76\xbd\x55\x4e\xe2\x24\xae\xec\x64\x7c\x71\x76\xe6\xaa\x5c\xae\x2c\x4c\x42\x16\xd6\x22\xa9\x00\x90\x63\x9f\x56\xff\xfd\x0a\x0f\x92\x00\x09\x90\x20\x25\x3b\xc9\x94\x5c\x95\x87\x49\xa0\xd1\xdd\x68\xf4\x0b\x0d\x70\xb5\x3a\x00\x3f\xc4\x69\x84\xe6\xef\x61\x8c\xc0\xe4\x08\x2c\x20\x0d\xe1\x1c\xff\x1f\x02\xc1\xff\xbe\x7a\xf1\x32\x4d\xa6\xf8\x3a\x38\x0f\x67\x28\x86\xa2\xc9\x7a\xdd\x17\x9d\xee\xa2\x2b\xf9\x92\x77\x2a\x9a\xe6\xef\xe7\x28\x79\x99\xc6\x8b\x94\x62\x86\x8e\x19\x23\x94\xb7\x9b\xa3\x44\xeb\x19\x18\x0d\xf0\xd5\x92\x21\x9a\xf7\x9f\x41\x5a\xed\x7f\xcd\x6c\x80\x7f\xca\x3b\x2d\x48\xfa\x2f\x14\x32\x14\x9d\x26\x11\xba\x43\xf4\x37\xcc\x66\xb6\x41\x38\x9d\x9e\x4d\x35\x42\x35\xd2\xce\xfc\x07\x12\x34\xfb\x8e\xa6\x51\xdf\x62\x08\xc5\x16\xdf\x1e\x05\xbf\x28\x23\x38\xb9\x3e\x23\xe9\x02\x11\x86\x11\x3d\x2d\x58\x2b\x00\xd7\xbe\xb7\x73\xe6\xbc\x01\xa4\x60\x47\x2d\x5c\x8d\x07\x4d\xc0\x14\xe1\xb5\xcd\x04\xb5\x0b\x18\xde\xc0\x6b\x04\xa2\xfb\x04\xc6\x69\x74\xd5\xef\xe3\x78\x91\x12\x06\x86\x7d\x00\x06\x61\x9a\x30\x74\xc7\x06\xfc\xff\xd3\x58\xfc\x2b\x7f\x38\x1e\x78\x0a\x52\xd2\x6a\x46\x1a\x31\x5f\xaf\xf3\x11\x06\x92\x15\xd4\x1c\x13\x25\x11\x6f\xc4\xf1\x59\xad\x40\xf0\x73\x1a\x2d\xe7\x48\x2d\xbf\xd5\x2a\x78\x93\xfe\xb2\x64\x8b\x25\x3b\x83\x6c\xb6\x5e\x1f\x8a\xf5\x4b\x57\xab\xe0\x57\x44\x28\x4e\x93\xf3\xe5\x74\x8a\xef\xd6\xeb\x41\xd6\xff\x4c\x52\xaf\x00\x1c\xf2\x47\x05\x00\xa0\x1a\x5e\x63\x36\x5b\x5e\x05\x61\x1a\x1f\xc2\x2f\x94\xff\x39\xa0\xd1\xcd\xc1\x75\xca\xff\x5b\x61\x49\x92\x32\x7d\x25\x1f\xcf\xe7\xe9\x97\x5f\x6e\x11\xf9\x42\x0a\x0a\xeb\x41\xf2\x3f\x88\x10\x2b\xe1\xb5\x7d\x29\x22\xb7\x38\x44\x87\xd9\x5c\x36\x60\x5f\x6e\x9e\xff\x07\x66\x33\xd6\x15\x00\x9e\xc2\x50\x74\x56\x3c\x61\x04\x26\x14\x86\x0c\xa7\x09\x3d\x49\xe0\xd5\x1c\x45\xa5\x45\xd2\x6e\x1c\x74\xb7\x20\x88\xf2\x19\xcd\x06\xb1\xb2\xe7\x3a\x3d\x48\x17\x28\x81\x0b\x7c\x48\x19\x11\xf2\x3b\xea\xf7\x6f\x21\x01\x9f\x80\x58\xc2\xd3\x98\x05\xaf\x20\x43\x1f\x71\x8c\x56\xeb\x7e\xff\xf0\x10\xac\x56\xba\xda\x5f\xaf\x3f\x72\x6c\x01\x41\x7c\x40\x94\x30\x0a\xd8\x0c\x81\x25\x45\xe4\x20\x14\xc8\x2f\x89\x68\xb0\xc8\xe5\x19\xa4\x53\xd1\xa6\x0c\x08\x30\xde\x30\xe8\xb3\xfb\x45\xf5\xa5\x1c\x85\x32\xb2\x0c\x19\x58\xf5\x01\x78\x25\x48\x7d\xf5\xe2\xf8\xec\x34\x93\x02\x83\xb9\x81\xd6\xa0\x0f\xc0\x19\x41\x53\x7c\x07\xf4\x1f\xb9\x7c\xfa\x00\x08\xd8\x62\x9c\xea\xbb\x0f\x08\x46\x2f\xe1\x02\x86\x98\xdd\xff\x23\xc1\x8c\x02\x80\x13\xf6\x5f\x7f\xec\x03\xf0\x1b\x97\x57\xf3\x9d\x7c\x25\xf9\x14\x45\x57\x65\x22\xce\x08\x8e\x21\xb9\x7f\x87\xee\xcb\xfc\x5a\xc8\x37\xe0\x06\xdd\x73\xf6\xc0\x2a\x73\x70\x92\x93\xac\x58\x54\x3f\x80\xc6\x2a\x3e\xfd\x87\xfb\x60\x9e\xa6\x0b\x90\xde\x22\x62\x8c\x06\x0b\xe5\x03\x93\x08\xc0\x28\xe2\x08\xc5\x00\x52\x30\xc5\x68\x1e\x71\xa2\x04\x8a\x0a\xe0\xfe\xa1\x90\x22\x0e\x93\xc0\xe4\x1a\x81\x1f\x3e\x8d\xc1\x0f\x8b\x1b\xae\x53\xb5\x55\x9d\xe3\xfa\x0e\xdd\x4b\x17\x00\xa8\x7e\x9a\x9b\xf0\xc3\xe2\x26\xc8\x95\x5f\x46\xe8\x6a\x05\xae\xd3\x8f\xf7\x0b\xf4\x3a\x25\xf9\x4b\x7d\x31\x58\x7b\xfd\x33\x5f\x9a\xb7\x13\xae\xb8\x6c\x8d\x06\xff\x34\xd7\xc2\xba\xdf\x5f\xad\x32\x2a\xae\x29\x76\x91\xf0\x66\x9e\x5e\xc1\xf9\x39\x0a\xd3\x24\x82\xe4\x5e\xa9\x70\x0e\x21\x9b\xe6\x62\x12\xd6\xeb\x37\xe7\xa7\x26\x91\xd7\x14\x07\xa2\x4f\x86\x6b\x69\xee\x39\xb6\x95\x36\x6f\xce\x4f\xf5\x69\x6e\x37\x80\x31\xf7\x19\x81\x37\xc2\xec\x89\xc6\x95\x39\x39\xd0\xc1\xdd\xd0\x2e\x93\x62\xeb\x55\x99\x14\x4b\x23\x31\x29\x99\x16\x2f\x66\xa6\xf8\xbf\x63\x2d\xe9\x5c\xb4\x2c\x17\x48\x01\x65\x29\x41\x91\xdf\xc2\xd1\x59\x26\x6d\x62\x50\x6e\xc2\xc5\x65\xba\x4c\x42\x30\x64\x76\xed\x34\x02\x09\x8c\xd1\x70\xa4\x94\x87\x80\xc5\x55\x7b\x50\xe8\x97\x27\x47\x60\x30\x10\x2f\x00\x20\x88\x2d\x49\xa2\xbf\xee\x03\xc0\xa7\x43\xbd\xe0\xaa\xf7\x7c\x41\x70\xc2\xa6\xc3\xc1\xd3\xa7\xf4\x60\xb5\x02\x11\xa4\x33\x44\xc4\x2c\xe9\xc3\xd3\xc1\x18\xb0\x40\xaa\xb8\x91\x07\x9e\x21\x41\x90\xa1\x61\xc8\xee\x80\xf2\x5f\x82\x97\xf2\xdf\x11\x40\x84\xa4\x24\xc3\xfd\xd3\x98\xff\xce\xe5\x86\xe9\xfa\x34\x78\x29\x00\x08\x68\xd2\x93\x11\x9d\x39\xc0\x31\xd8\xcb\x26\x5d\x6f\x75\x9a\x2c\x96\x4c\xd2\x9d\x0b\xc0\x2b\x34\xc5\x09\x16\x26\x6f\x02\x2e\x2e\xf7\xf3\x7e\x96\x16\xab\x3e\x70\xfc\x08\x7f\x0f\x66\x5e\x3e\xd4\xa5\x8b\xda\x56\xb3\xee\x41\xd9\x60\xa9\xd5\xc2\x01\x89\xf5\x22\x41\xe7\x9d\x0a\x44\x0c\x41\x9e\x00\xf8\x85\x06\xd2\x73\x1b\x0e\x72\x9c\xb8\x7c\x8f\xc6\xd5\x2e\x7c\x25\x95\xbb\x28\xf3\xf5\xea\x45\xed\x32\xab\x40\x5d\x8f\x6b\xc9\xc9\xcd\x7e\xde\x32\x5f\xfc\x26\xd3\xf3\xc7\x27\x73\x14\xa3\x84\xd5\x73\x5c\x53\xfd\x4a\xaf\x34\xab\xfe\x76\xec\xb3\xa9\x8a\x91\x9b\x56\x1d\x39\x3c\x05\xe8\xb3\x80\xf0\x0e\xdd\x73\x6e\x82\xc1\xdb\xe3\xf3\xb7\x03\x7d\xea\xd5\x9b\x89\xfa\x55\x1b\x5e\xe7\x08\x6f\xf2\x16\xd2\x99\xe7\xc0\x68\x4e\x91\x6d\xf4\x0f\xc7\xef\xdf\x9c\x74\x1c\xfe\x03\xe7\xb4\xef\xf8\xc5\x64\x77\x10\x8c\x72\x0b\x1e\x1e\xbd\x39\x3f\xb5\x45\xdf\x1e\xa6\xd1\x31\x31\x2a\xec\x12\x70\x7f\xca\xda\xd9\xa1\x98\xf2\x69\x6b\xe3\x25\xa3\x9d\x0c\xbb\x82\x92\xc3\xcf\xcd\x6b\x65\xd5\x56\xac\xaf\x2e\xa5\x2a\xec\xc3\x69\x32\xd1\xf4\x62\xf1\x54\x27\xa0\x78\x6a\xd5\x0e\x62\x9c\xa2\x4d\x60\x36\x2f\x8d\xab\xcd\xe8\xc6\xcb\xbd\x86\xb5\xda\xf2\xb7\xb8\x15\x79\x07\x6f\xd0\x0f\xa6\x15\x4c\xec\x7d\xf4\x03\x78\x08\x1d\x61\xa2\xe1\xaf\x2d\xda\x21\xe3\xab\x31\x4a\xd8\xe8\xba\x03\xd4\xeb\x0f\x8f\xfe\x6b\x63\x11\xdc\x62\x1e\x8a\xa2\xe8\xe3\x8c\xa4\xcb\xeb\xd9\x62\xc9\x4a\xeb\xa1\xda\x40\x97\x9a\x4a\x10\x36\x91\x0c\x38\xe5\xe1\xd6\x90\x05\x95\xf7\x06\xf5\xd5\x38\x6d\x62\xf4\xae\xbe\xb7\xad\xa4\x8d\xd5\xa9\xd6\x62\x33\x8e\x74\xe7\x46\x67\x4e\x28\x92\x72\x4f\xd5\x58\x99\x2c\x90\x7e\xaf\x68\xbb\x1e\xfd\x45\xb8\x8c\x4f\x8e\x40\x82\xe7\xa6\xab\x8b\x08\x31\x5d\xdc\x04\xcf\x3d\xbc\x55\x0a\x6f\x51\xf9\x95\xcd\x77\x1d\x83\xd8\xe5\xbb\xeb\x6e\x6d\x04\x19\xcc\xdd\x5a\x94\x84\x69\x54\x85\x1e\x8f\xa4\xff\xdb\x4c\x49\x31\xbf\x78\xda\x98\xd5\x52\xee\x74\xd9\x9b\x3e\x5b\xb2\x53\x86\xe2\x1a\x4f\x5a\xb5\xd0\xbc\x68\x8f\xa9\x00\x80\xf7\x51\x0a\x43\x50\x2d\xe6\xa7\x5f\xa2\x42\x93\x50\xae\x90\xbe\x15\x44\x01\x38\xc9\x73\x58\x86\xca\xa7\x13\x10\xc3\xc5\x85\x0c\xb2\x2e\xf7\xe5\xbf\xd9\xda\xe8\x9a\x96\xe0\x3f\x83\xff\x58\xad\xc0\x72\xb1\x40\xc4\x9e\x3d\xa8\x9a\x64\x5b\xab\x7c\xb1\xd9\xb5\xc2\xcb\x34\x89\x44\x44\x53\x50\x67\xc2\xb5\x68\x19\x8d\x28\xec\x49\xd4\x81\x35\xca\xc9\x12\xb0\x1c\x90\xf0\xbe\xc0\xf1\xfb\x57\x59\xd8\x6d\xef\x92\x07\x54\x9f\x92\x94\x7d\x42\x77\x98\x32\x3a\xac\x67\xd4\xc8\x31\xb2\x7b\x10\xc5\xff\xd1\xb8\xdf\x5b\x8f\xfa\xbd\xf2\xc2\xeb\xf1\x27\x10\x11\x32\x06\xa9\xa0\x1d\x11\x12\x0c\x65\x0e\x38\x38\xe1\x0b\x7b\xf4\x17\xfe\x86\xb7\xec\xd1\x2f\x98\x85\x33\xd1\x3c\x78\x99\x46\x3c\x1e\x17\xcf\x7b\x21\xa4\x45\x12\x9f\x77\xe3\x6f\xf3\xe9\x80\xf3\x97\x33\x14\xde\xbc\x86\x78\x8e\xa2\x93\xbb\x10\x2d\x84\xd7\x26\x7a\xf6\xd4\x7a\x91\xdd\xca\xca\xe2\x78\x4e\x10\x8c\xee\x4f\x04\x6b\xe4\x50\xbd\x5e\x37\x39\xcc\xfa\x36\xa4\xc8\x26\x7c\xca\xf0\x14\xe0\x62\x9b\xab\x29\x3f\xb6\x5a\x81\x30\x6b\xfb\x2b\x9c\x2f\x1b\x3a\x0c\xe2\x81\xec\xa4\x54\xc2\x6a\x55\x08\xc2\xc7\xf4\x67\x4e\xbd\x17\x94\x20\x03\x23\xd6\xc1\x58\x63\x8e\x5a\x19\xe2\xf7\xb5\x7b\x7e\x3e\x20\x9a\x2e\x49\x88\xde\xa7\xec\x75\xba\x4c\x5c\x33\x33\x8d\x99\x14\x84\xe9\x70\x20\xb2\xc8\x20\x25\x00\x73\xa7\x5c\xec\x36\x4c\x79\xd7\x09\x78\xfa\x54\x26\x4a\x94\xea\xe9\xab\xa1\xf9\x1f\x4d\x23\xf2\xdf\x35\xfb\x54\x96\xe0\x2c\x6f\x68\x55\xf8\x2f\x20\x0b\x67\xbf\xe5\x1a\xdf\xc3\xb0\x1d\x13\x02\xef\x7f\x99\x7a\xda\x37\x0a\x2e\x2e\x1b\x4d\x1c\x5f\x2d\x73\x94\x0c\x63\x3a\x02\x7f\x03\x31\xbc\xcb\x84\x4d\x60\xc7\x55\x2d\x15\x4b\xc2\xc2\xbb\x1a\x8c\x00\x41\x21\xc2\xb7\x28\x02\x4f\x9f\x46\x00\x0b\x28\x2c\x15\x34\x8c\xc1\x97\x19\x0e\x67\x00\x53\x70\x2d\x52\x3e\x04\xb0\x19\x94\x59\xe3\x18\xde\xe1\x78\x19\x83\x74\xca\xfb\x0d\xc6\x19\x66\x63\x3b\x62\x23\xce\x7e\x83\x82\xa3\x23\xf0\x93\x8e\x2e\x9f\x13\xd1\xe6\x8a\x77\xe2\xcb\x2a\x86\x37\x68\xa8\xc7\x36\x62\x02\x3e\xa0\xcf\x4b\x44\x59\x3e\xe0\xa8\xdf\x9b\x72\xa1\xe0\x3d\xe4\xca\x94\x6c\xf0\x72\x07\xe8\x05\xbe\x1c\x49\x3d\x54\xd2\x4c\x86\xe4\x08\x51\x12\x78\x5d\xe0\x4b\x70\xa4\xd9\x45\x1d\x25\xd1\xed\x6c\xc9\xd4\xaf\x13\xd3\x7c\xea\x8d\x7a\xd2\x2e\x4a\x93\xc8\xa5\x75\x2c\xc7\x58\xf7\x7b\x2c\x51\x9b\xee\x99\x38\x4b\xf2\x94\xb2\x4c\x97\xcc\x91\xb9\x2b\x24\xb4\xc1\x92\x9b\x0d\x95\x41\xef\xf5\x7a\x0a\x3f\x31\x5b\x86\x25\x76\xcd\x80\xa4\x44\xe0\x3b\x01\x82\x39\x1a\x2d\x65\x6f\xd1\xbe\xa4\x4d\x5c\xf8\x42\xbe\x1d\x08\xfa\xf8\x9c\xac\xf3\x40\x2a\x5d\xb2\xe0\x1f\xc9\x82\xa4\x21\xa2\x14\x45\x52\xd2\x15\xe8\xbd\x3d\x21\x08\xb6\x26\x17\x02\xb7\x4b\xbe\x58\xa4\xa4\x29\xd1\x3a\xb2\x02\x54\xad\x8b\x81\x65\x0f\x82\xe0\x4d\x3e\x39\xad\xdc\xdb\x08\xcd\x11\xfb\xc6\xf4\x40\x2d\x4e\x0e\x4d\x20\xfb\x6c\x5b\x17\x00\xf0\xa8\xda\xa0\x77\x83\xee\xf3\x95\x53\xd9\xed\x0d\x7e\x86\x84\xce\xe0\xfc\x67\xb8\x18\xd6\xee\xbe\x71\x48\x9d\x5d\x80\x47\xb1\xff\xaf\x49\x1a\x8b\xf9\x6d\x32\xe1\x5c\xf5\x0d\x4a\xbe\x00\x77\xc7\xb2\x66\xa7\xf4\x2c\xc5\x09\x9f\xe7\x06\x14\xf6\x73\x3f\x40\xc0\x0c\x1a\xc9\x34\xfc\x06\xc3\x67\x58\xfb\xe9\x62\x6f\x65\xfc\x4a\x88\xae\x45\x1f\x1b\x2f\xa4\x22\x7b\x87\xee\x27\x80\x4b\xc9\x4e\x21\x7f\xa7\x0a\x59\xaf\x92\x91\x51\x9c\x70\x68\xcd\x20\x53\xa8\x92\xea\xe3\xd7\x29\x11\xb9\x5e\x43\xd8\x9b\xd6\x74\x83\x01\xb8\x46\xcc\x4b\xed\x57\x77\xdd\x8d\xdd\x2e\xa1\x5e\xec\xb4\xe4\xbb\xbc\xb7\x90\x08\x31\x2d\xf5\xf4\xda\xe0\x2d\x77\x19\xf7\xcd\xb0\x6e\x04\x86\xfb\x0e\x9b\x34\x96\x36\x49\x44\x62\x5f\x5f\xc1\x7e\x0b\xf1\x55\x25\xbc\xca\x67\xa6\x8d\x22\xb4\x07\xcb\x85\xb0\x8f\xb5\x80\x86\x3a\xf4\xcf\x1b\xd4\x94\xd3\x51\x2d\x72\x8d\x23\x34\xa0\xfc\x51\x7a\xb0\x31\xc7\xd3\xeb\xbd\x4c\x13\x8a\x29\x43\x09\xfb\x80\x60\x24\xdb\xbd\x48\xd3\xf9\x90\x91\x25\xca\x02\x7f\xaf\x34\x9a\x27\xc5\x7a\x42\xeb\x31\x33\x0a\x9e\x11\xab\xc0\x75\x5b\x61\x6b\x95\xf0\xbc\x08\x50\xf9\x4e\x04\xd1\x80\x4f\x62\xee\x41\x69\xc9\x4c\xd1\xdb\x9e\xdb\xc8\x88\x90\xed\x37\xd1\x3e\xe5\xca\x9f\xb2\x36\x11\x6b\xce\xa9\x9e\xc6\x7d\x5b\x46\x4d\xa4\x60\xfb\x80\x77\x73\xa7\x7e\x8b\x44\x2e\x57\x38\xc8\x1a\xdf\x65\xdc\x19\x83\xbd\xb8\x26\x7f\x9d\xb3\x59\x8d\xab\x1e\xef\xc5\xe3\xcc\xd5\x97\x7a\xa3\x2c\xbf\x4a\x6d\x09\xc3\x71\x1e\xc2\xc4\x27\x35\x10\xc2\xa4\xfc\x8a\xda\x83\x01\xcc\xd7\x25\x9f\xbf\x73\x5b\x1f\xb1\x6a\xc7\x60\x9a\x00\x3e\xe2\x30\x06\x6e\x1d\x3d\x87\xb4\x62\x88\xc0\x55\x9a\xce\x47\xea\xef\x22\x87\xce\xd1\x13\x90\x39\x53\x0b\x4d\x71\x9e\x3d\xae\xa4\x7e\x65\x2e\xd1\x99\xff\x75\x6a\x87\x27\x82\xba\xe0\x15\xa6\x1c\x96\xd9\x4c\xf5\xfd\x3b\x8e\x31\x9b\x14\x69\x44\xd9\x43\x3c\x1d\xab\x24\x3d\xd7\xe5\xe2\xe9\x39\x83\x84\xe1\xe4\xfa\x78\xca\x1d\x56\x6d\x8e\x95\xe6\x11\x6b\x8f\x73\x16\xe2\x84\xbe\x4f\x93\x6a\x89\x6e\x2b\xc3\xcf\xd1\x41\x77\xe1\x7c\x49\xf1\x2d\x12\x63\xbf\xf3\xb5\x7e\x16\x7c\x65\x5e\xd5\xb6\x2b\x61\xd4\x0c\x65\x0a\x45\xce\x96\xc8\x68\xe0\xe4\xba\xc0\x03\x50\x0e\x54\xd4\xfe\x71\x07\x95\x4f\x65\xa6\x63\x72\xed\xc7\xd5\x4c\xb6\xc4\x4a\xab\xee\xf0\x10\xc4\x4b\xca\xc0\x82\xa4\xb7\x38\x42\x20\x4d\xe6\xf7\x22\xba\x53\xd5\x82\x61\x9a\x50\x86\xd9\x92\xa3\x2d\x9e\x0b\x9e\x8a\xae\xb9\xd4\x04\x27\x65\xa6\x80\x23\x23\xa9\x5f\x2d\x05\x12\x46\xd5\xb6\x93\xac\x29\xa5\x56\x95\x28\xd6\xcc\xb8\xcb\xe2\x5b\xb6\x9d\xb3\x4d\x03\x57\x59\x9b\x1e\x46\xb8\xa9\x38\x37\x2c\xe6\x6a\x65\x3a\x11\x67\xf0\xba\x01\x8f\x81\x45\x4e\x06\xeb\x75\x53\x75\x90\xb9\xdb\xd3\x40\x87\x4d\x88\x2f\x9c\xed\x2f\x6b\x46\x2c\x6f\x31\x3b\x5e\xae\xd5\xb2\x65\x29\x83\xf3\x0f\x28\x4c\x49\x44\xcf\x32\x9f\x9f\x4f\xb1\x28\xb3\x1d\xfe\x34\x52\xba\x1f\x27\x09\x22\x27\x84\x48\x05\xd5\x07\x76\x47\x87\x2b\x27\xce\x50\x5a\x71\x75\x72\xb9\x1c\x4b\x25\x99\x2e\x19\xd8\x37\x94\x9a\x2c\x79\x97\x2a\x52\x4c\x4a\xa1\x16\xd5\x12\x14\x69\x90\x71\xbd\x9d\xa1\x22\xda\x51\xb9\x0d\xf7\x5a\xce\xc9\x39\xb2\xac\x67\x01\x99\x2f\x2d\xc7\x8a\x2d\x54\x01\x9c\x53\x94\xb3\x13\x80\x52\xba\x03\xab\xf4\x8f\x1a\x72\xaa\xab\x4d\x54\x41\x49\xb7\xa1\x46\xc3\xe0\x37\x88\x05\x17\x6d\x66\xb3\x42\x8e\xbe\xe1\x68\x41\xb4\x40\xb6\xf8\x17\xd3\xbf\x43\xca\x84\x5b\x21\xea\x90\xb2\x09\xd8\xdb\x03\x98\xfb\x32\xdc\xb9\x11\xb4\x8c\x0e\x9e\x15\xc4\xd0\x59\xba\x9c\x47\x7c\x92\x71\xb2\x14\xbe\xc9\x34\x19\xee\x89\x76\x17\xf8\x72\xac\x43\x1d\xfd\x05\x3c\x29\x35\x2f\xb0\xb7\xa0\x98\x21\x66\x15\xce\x3f\xfc\x41\xbd\x3d\x3c\x14\xa5\x9f\x33\x24\xcd\x13\x48\xa7\x80\xc8\xb6\x60\x06\x6f\x11\xb8\x42\x28\xe1\xee\x10\x17\x68\x96\x82\x69\x32\x06\x51\x9a\xfc\xc8\xc4\x33\x00\x93\xfb\x38\x25\x28\xeb\x12\x58\x67\x49\x0b\xa4\xed\x0b\xe5\xe8\x08\xec\xeb\xed\x3d\xc8\x5a\x1b\x95\xa9\x64\x89\xb2\x1d\x63\x31\xb4\x9a\x47\x9b\x6b\x94\xbd\x34\xf7\xf7\xf9\x7c\x57\xe2\xed\xcc\xcc\xbe\x85\x54\x54\xaa\x70\xed\xdf\xa8\xb3\x45\xf1\x0f\x57\x8e\xcb\xec\x0c\x4d\xe6\x74\xe2\xfc\x17\x3f\x20\x33\x48\x67\x7c\xc8\xac\x6b\x43\xb7\xe2\xc0\x13\xc9\x90\xf5\xec\xf9\xac\xd2\xd3\x3c\x79\x65\xcf\x2e\x64\x55\x40\xde\x6e\x86\x56\x2e\x94\x15\xed\x7d\xb0\x8e\x27\x4a\xf8\x2c\xa8\x94\x18\xf3\x30\x48\xe6\xf5\x55\x19\x8e\x6f\x6d\xa3\x09\x14\xab\x78\xe4\x47\xf4\x1e\x3a\x51\x23\x46\x49\xd2\x44\xf4\xac\x0e\x93\xbd\xb1\x61\x61\x86\xfb\x96\x16\x1a\xed\xef\xcb\x23\x14\xc4\x3b\x06\x5f\x17\x5b\x8e\xaa\x80\xd2\x02\x43\x95\x53\x5a\x23\x8b\xba\x64\x13\x7d\x71\xcf\x1f\x55\x57\xd7\x7a\x7d\x06\x09\x45\xaf\xf1\x9c\x21\x42\x87\x9f\x97\x88\x07\x31\x0b\xc3\x3a\xfe\x4f\xfe\x50\x8b\x44\xde\xb4\x1a\x44\xf4\x1e\x29\x7d\xc2\xcd\xd4\xa7\x31\x98\x8a\x31\x65\x26\xa5\xb0\x59\x42\x99\xbd\x2e\x5e\x15\x06\x4c\xc5\xe8\x5a\xb7\x92\x67\x62\x29\x10\xa9\xc6\xaf\x76\xee\xe7\x2e\x8b\x8c\xf7\xaf\x2a\xa1\x53\x43\x64\x9b\xab\xdd\x82\x81\x81\xab\xb6\xe5\x42\x2f\x42\x29\x43\x1a\x5c\x82\x23\xdd\x5d\xa4\xaa\xfe\xaf\x2d\x46\xa3\x91\xb1\xab\x2d\xde\xbf\xd2\x8a\xcf\x8b\xe0\xc4\xa3\x18\xdd\xe2\x13\x6b\x60\xdf\xa4\x19\xc0\x96\xd9\xc5\x1c\x94\xf0\x5b\xc6\xc5\x7e\x43\x49\x26\xac\x33\x5e\x12\x0e\x60\xd6\x7d\x56\xc8\x1d\x9c\x57\xaa\x2d\x4b\xcd\x15\x19\x83\xd2\x89\xb8\x4a\xb7\xa6\x39\x96\x88\x5d\x18\x47\x3b\x26\x4f\x9f\xd2\x4f\xb7\xfc\x85\xdc\x14\xeb\x3c\xab\x63\x80\x47\xe6\x46\x47\x53\xf4\x64\x46\x1f\x2c\x95\x5c\xe1\x94\xa9\x47\x26\xd7\x83\xe1\x6a\xa5\xb1\x83\x0b\x52\xa5\xcc\xb4\xca\x46\x33\xce\xf8\x1d\xf0\xa9\x91\x29\x1e\x3c\x29\x47\x42\xe5\x7a\xe0\xaa\x8c\xbe\xaf\x08\xdb\x77\xc4\xc2\xf7\x06\x03\x0b\x9c\x5a\x0b\x58\x3b\x9e\xbd\xf8\x9e\x79\xf6\x62\x02\x9a\xb8\xd3\xc0\x9b\x52\x45\xb6\xbd\x2e\x51\x77\xfd\x4d\x5f\x7d\x9b\x8e\x44\x43\xea\xb2\x83\xc3\xb0\xf5\x9c\xa6\xe9\x5f\x59\x7c\xe8\x67\x19\xcb\xf0\x14\x94\xf3\x73\x7a\x34\xe6\x4e\x35\x8e\xea\xf2\x75\x2f\x61\x02\xe8\x02\x85\x78\x7a\x2f\x93\x6a\x69\x82\x78\xdc\xa8\x8d\x91\x12\x60\x66\x7a\x4a\x59\x3a\x4d\xd3\xe6\xb1\xa2\x29\x95\x99\xff\x5f\xc9\xdb\xb4\xa4\xa4\x0b\x21\x5d\xf1\x11\x7b\x22\xd5\x2c\x97\x23\x43\x59\xe7\xe0\x6d\x3d\x9a\xc9\xd6\xd3\x0f\xd1\xd6\xdc\x27\xcd\xf3\x88\x9c\x4e\x8a\x63\x76\x2b\xbb\xba\x47\xda\x79\x53\xc7\x6c\xf1\x40\x4c\x24\x83\xbd\x00\x86\x30\x49\x52\x06\xae\x10\x40\xf1\x82\xdd\x0f\x46\x86\x0e\xa9\x4c\x44\xfe\x8b\x16\x3b\x18\x3b\x06\x45\xf8\xd0\xa2\x5a\xbc\x4b\x61\xb8\xee\x57\xab\x08\xd3\xa7\xc2\xdb\xd9\xd4\x3c\x18\xe1\xb4\x25\x93\x36\x69\xed\xc1\x64\xb5\x02\x21\x8c\x91\x64\x7e\x0d\x9a\xfe\xae\x8b\x69\x12\xba\xc9\xa9\x0b\x91\x86\xc1\x1a\xa5\xb8\xb6\xab\x2b\x15\xdf\x01\x19\x60\x49\xb4\xd7\x6d\xd7\xdb\x87\x90\xa9\xf6\x01\xa8\xd8\x5d\x1b\x01\x99\x5f\xa2\x95\x49\x9d\x24\xcb\x78\xfb\x94\x28\x77\xc4\xb6\x78\x5d\xf0\xab\x0e\xaa\x03\xff\x96\xa8\xb4\xc2\xc1\x03\x05\xd7\x6e\x81\x8d\xcf\x55\x41\x33\xfd\x65\x97\x03\x3a\x1d\x0e\x84\x57\xb7\x3d\xfe\xb9\xce\xe1\xaa\x7f\xe4\x16\x69\x84\xee\x5e\xa7\xe4\x0b\x24\xb6\xbd\x4e\x44\x43\x94\x44\x38\xb9\x76\x6c\x8e\x82\x16\xdb\xa3\xc6\xee\xa7\x91\x36\x96\xaa\x42\xf3\x87\xe5\x5b\x23\xbf\xdf\x2f\xec\xab\x8f\x67\x54\xdd\x66\x65\xdc\x02\x99\x1b\x02\xa6\x74\x6d\xe0\xa6\xd8\x21\x17\x9c\xd7\x48\x7b\x87\xee\x2d\xe7\x6e\xcc\x64\x8a\x8f\x81\x00\x47\xc0\x53\x45\x73\xbb\x98\x97\xa3\x81\x0e\xb9\x1f\x27\x07\xca\x49\x20\x61\xa6\xdc\xad\x47\x1e\xa3\xab\xb0\xa7\x64\x7e\xea\x31\xa8\xb7\x40\xfe\xbe\x74\x93\x52\xa9\xd7\xd4\x0e\x1c\xcb\xbb\xa2\xf5\x5a\xbb\x59\xdf\xb5\x4f\x67\x39\x99\xd7\x34\x42\xa7\x3c\x5c\x97\xd1\x5a\x24\xc3\x9c\x1d\x9b\xd2\x62\x8d\xf9\xa5\xfd\x8e\x8b\xdf\xad\x82\xcb\x93\x69\xa2\xd0\x79\xbc\xda\xe1\xea\x0c\x55\x9b\xc4\x4e\x9d\x91\x12\x56\xea\x01\xd9\xe5\x91\x43\x79\x31\xe9\xaa\xab\x37\xe3\x9e\x59\x18\xa0\xd9\x8c\xc2\x52\xe6\x56\xe0\x6b\x2a\x7d\x71\x98\xd2\x47\x85\x83\xbf\x96\x41\x36\xe9\x6f\xc3\x94\x7c\x2f\x54\xfe\xad\x35\x95\xde\xe5\x5a\x25\x8b\xb6\x51\x31\x51\x83\x01\x6d\x0e\xb6\xda\x19\xbb\x06\xf3\x56\x29\xf9\xf1\x34\x71\x22\x25\xa2\x5b\x39\xbb\x55\x7b\x18\x4b\xf6\xd0\xd6\xab\x95\xbd\xea\xb4\x75\xa3\x3a\x35\x9c\x6a\xf1\xb3\xb3\x4d\x56\xef\x8c\x11\x5b\x79\x9f\xaf\x5a\x35\x95\xb9\xcb\x79\x69\x34\xbd\xdb\xc5\x20\x89\xec\xdb\x19\xf9\xd3\xb2\xd8\x6f\xc0\xec\xfd\xd5\x4a\x8c\xb7\x09\x05\x16\x02\xca\x02\xe7\xbf\x1d\xd3\x68\xb7\xb7\xc4\xeb\x76\x1b\x1e\xb9\xb9\xee\x34\xee\xd8\x15\x56\xd5\xdd\x34\x55\x9f\x32\xf3\x49\x5b\x99\xba\xb4\x5a\x24\x52\x8a\x1b\xda\x2a\xd3\xba\xcc\x4e\x8d\x2e\xad\x8b\x11\xda\x6b\x54\xcf\xbc\xcf\x66\x4a\xb5\x71\x90\x87\xd7\xa9\xbe\x5a\xd5\x93\x1f\xdb\x51\xab\xbe\x49\x1d\xf7\x84\x6f\x41\xb3\xb6\x42\xc2\xa5\x5a\xb7\x91\x5d\xb4\xe6\x12\x7d\x94\xb3\x0b\xba\xbf\x6e\xf6\xe3\x81\x9f\x79\xfb\xca\x18\x3f\xae\x31\xd9\xdf\x0e\x6f\xbd\xd5\x7a\x7e\xcc\xc6\xb7\x00\x2d\x3f\x74\x54\xad\xd7\x92\x47\x3a\xf3\x9d\x45\xf9\x4a\x0b\x5b\x9e\x18\xfb\x55\x2c\xd8\x4a\xb5\x9a\xb2\xbf\xa3\x6a\xf0\x54\x19\xff\xa8\x9a\xcf\x2e\xb7\x19\x01\xdb\xbe\x63\x8b\x6a\xf5\x05\xbc\x46\xaf\x93\xa2\x5c\xbd\x27\x1f\x88\x22\xe5\x65\x12\x4a\xc4\x65\xc1\x79\xb9\xce\xae\xbe\x0c\xbd\xd7\xf3\x9f\x21\x51\xa1\xfc\x4b\x32\xbf\x07\x90\xd2\x65\x8c\x00\x4c\xe4\x8e\x9e\x40\x0f\xc4\x08\x26\x14\x24\x29\x50\x65\xc8\x74\x39\x67\x54\x55\x34\x13\x04\x20\x41\xfc\xa5\xac\xbd\xa2\x00\x2e\x16\x73\x8c\xa2\x62\x6f\x72\xe8\x9a\x7d\x71\xf8\xec\xdf\xff\x76\x4d\xbf\xd8\xae\x1c\x65\x47\x83\x35\x46\xa8\xa2\xf9\xe2\xf8\x7f\xaf\x54\xc4\xcc\x1f\x68\x7b\x90\x86\xc6\x50\xd2\xb8\x01\xb8\xec\xdc\xb9\x5f\x91\x7f\x75\xa0\x6c\x51\x58\x2a\xe4\x0b\x69\xd0\xcb\xe3\x2d\x35\xfc\xbd\xde\x0c\xd2\x9f\xf9\x74\x4c\x8e\x64\x69\x76\xaf\x7c\x85\x01\xce\xaf\x74\x10\x57\x26\x64\x42\x72\x24\xdb\xab\x43\x8b\x19\x94\x23\x80\xc1\x5f\xcd\xf2\xf9\xec\x2a\x1e\x3c\x05\x4f\xcc\x7a\xf9\x27\xaa\x57\x76\xf2\xb1\xc4\xac\xde\xef\xb6\x28\xde\x38\x66\x29\xb9\xbe\xee\xf7\x7b\xd6\x03\x26\x62\x89\xda\x4f\x98\xe8\xca\x48\xce\xf8\xe6\xa7\x5d\xbf\x93\x83\xae\xdb\xbe\x9a\x49\x5f\x90\x78\xaa\xad\x9f\x2a\x87\xf2\x77\x62\xd2\x4a\xb7\x0e\x36\x56\x3a\x95\x6f\x68\xf9\x7d\x9c\xd1\xcf\x2f\x87\xd9\x9d\xc3\x7f\xa4\x73\xf8\x99\xe0\x3a\xee\x54\x94\x57\x8c\x34\x1c\xc1\x2f\x1a\x6d\x74\x0a\x7f\x0b\x67\xec\x77\x5a\xa7\x7c\xbd\xd3\x86\x9f\x90\xf0\x3a\xd9\x54\xb9\x5d\x59\x3f\xaf\x6c\x1c\xa4\xb2\xb6\xb4\x1c\x7a\x32\xdb\xd5\x9e\x72\x32\x9b\x6e\xef\x58\x93\x09\xf7\x5b\x39\xc7\x54\xc2\x6a\x3b\x07\x97\xb4\x0b\x00\xba\x9e\x5b\x53\x30\xde\x76\x3d\xbe\x66\xf6\x7f\xa4\x53\x5e\x67\x35\x83\xaa\x8f\x9b\x39\x1a\xb8\xae\x48\xd8\xd5\x1f\xdb\xeb\x6c\x1e\xb6\x68\xb7\x75\x35\xee\xae\x12\x79\x5b\x95\xc8\xa6\x3e\xda\xd5\x1e\x7f\xe5\xda\xe3\x0e\x1f\x82\xd8\x95\x2b\xef\xca\x95\x77\xe5\xca\xbb\x72\xe5\x5d\xb9\xb2\xc8\xad\x79\xd5\x25\xef\x0a\x93\x77\x85\xc9\x0f\x51\x98\xbc\x59\x69\xf2\x57\x28\x4e\xf6\xd4\x6f\x0f\x5f\xa1\xfc\xd8\x35\xca\xdd\x8b\x94\xbb\xd4\x2b\x7c\x85\x4a\x65\x8f\x32\xa9\xad\x97\x2b\xfb\x99\xaa\x87\xd9\xb0\x7e\x20\xd6\xb5\xab\x85\xda\x5a\xe9\xb2\x17\x27\x77\xe5\xcb\xbb\xf2\xe5\x5d\xf9\xf2\xae\x7c\x79\x57\xbe\xbc\x2b\x5f\xde\x95\x2f\xef\xca\x97\x77\xe5\xcb\xbb\xf2\xe5\x5d\xf9\xf2\xae\x7c\x79\x57\xbe\xfc\x78\xe5\xcb\x45\x86\xbe\xf5\xa5\xb3\x86\x2a\x53\x3b\xd5\x1f\xba\xdc\x02\x5b\x07\xe8\x61\x76\xe2\xab\xdf\x90\x2e\x6d\xc9\xd7\xd4\x56\xb8\x11\x2c\x83\x13\xe6\xf7\x94\x8a\x6d\xbc\xc9\x91\xba\x1a\x8d\x9e\x7c\x5e\xc2\x79\x05\x4c\x69\x36\xfd\x34\x7c\x36\x82\x00\xd2\x7a\x08\x6f\xcf\x3c\x49\x99\x49\x4c\x7d\x13\x89\x8d\xd6\x46\x7e\x0c\xb6\x16\x99\x4e\x0e\x84\x7b\xae\x36\x74\x24\xea\x71\xdd\xc0\xa1\x68\xef\x4e\x34\xb1\xcd\x0e\xbe\x93\x53\xd1\x62\xa8\x96\xc9\xc7\x8e\x0e\x86\xaf\x8b\xd1\x8a\x47\x55\x79\xe8\xea\x6c\x34\x0d\x5b\x4d\xd0\xd5\xe5\xaa\xb7\xe0\x78\x74\x44\xa8\xe4\x82\xf8\x7b\x47\x3e\x86\xb9\x09\x27\x7f\x03\xdd\x48\x9d\xd5\xbb\xaa\xca\x6d\xdb\x7b\x44\xb7\x10\xff\xb5\x9b\x18\x97\x93\xe1\xb4\xde\xf5\x86\xbe\x3c\xc7\x79\x15\x60\x83\x65\x7a\x6b\xb5\x40\x8d\x56\x43\x03\x5f\x6f\x96\x1c\xf0\x1b\x0c\x9f\x6e\x6f\x34\x22\x6a\xde\x97\xcc\x91\x6e\x8c\xec\x28\x6c\x62\x8b\xb6\x1e\xd3\xd6\x62\xfa\xc8\xa1\x6d\x03\xd7\xb6\x1a\xe1\xfa\x8e\xf5\xad\x24\x0f\xdb\xf0\x66\xab\xe6\xc7\x35\xe2\xa3\x25\x12\xdb\xe3\xf1\x00\xe9\xc4\x06\x24\x5a\x5b\x19\x27\x35\xdf\x5c\x34\xd8\x82\xfd\x2d\x83\xc2\xb2\xd1\xb0\x7d\x5b\xee\x1b\x38\xd5\xe9\x73\x7e\xb1\x74\x20\x6f\x77\x58\x71\x77\x58\x71\x77\x58\xf1\x9b\x3a\x36\xb4\xf9\x61\x45\xc5\x36\xe1\x76\xc8\x4f\xdd\x35\x9c\xe5\xb9\xa1\xc7\x5d\xbd\x13\xdb\x07\xef\x5a\x9f\xc7\x68\x79\x1c\x43\xd3\xc4\xf9\x29\x3c\x0b\x1e\x1e\xc7\x20\x2d\xbd\xfc\xbe\x4e\xfc\xfd\x17\x8b\xdb\x3f\xe1\x57\x1e\xdd\xd6\xea\x11\x4a\xc4\xbb\x7f\x27\xb1\xfc\xa3\x39\xba\x16\x29\x2f\xf9\xc5\x65\x6f\xab\x5e\xbe\x9a\xcb\x65\x35\xf7\xc7\x36\x78\xbb\x52\x5e\xfd\xcc\xa9\x0d\x9b\x4d\xaa\x77\xed\xd5\x35\x13\x57\x71\x8d\x6d\xb1\x95\x8b\x60\x9c\x92\xc3\x2d\xcd\x67\xdd\x9d\x71\x9b\x9d\x1a\x8b\xb3\xfb\x08\xf4\xd6\x3f\x02\xed\xe3\x3f\x36\x7f\x09\xda\xad\xcb\xcd\x6f\x44\x97\xa5\x53\x73\xe4\x2d\xa2\x33\xa9\x17\xff\x03\x4b\x1a\x71\xad\x7f\xf5\xd9\x10\x4d\xe3\x8c\xdd\x06\x5f\x83\xae\x30\xea\xe2\xa7\xcb\x31\xd8\x73\x8e\xe5\xfb\xc5\xe8\xe2\x83\xd1\x4e\x50\x63\xcb\xe5\x04\xfa\xf6\x95\x58\x09\xf4\x3c\x84\x09\xad\x1c\x12\xd3\xe7\xa4\xd3\xe7\xa5\x3b\x9f\x9e\xb4\x7e\x78\xfa\xb1\x8f\x4f\x7e\x47\x9f\xa4\x36\x1c\x83\x32\x1a\x35\xde\x81\x5f\x71\xa1\xbe\xc9\x78\x9c\x44\xf9\x99\xf3\xdc\x43\x14\xae\xe3\x32\xc1\x69\xa2\x3d\xaa\xdf\x4f\xac\x1e\x2b\x37\xb7\x55\xfd\x3f\x99\x5d\x8f\x98\x5a\xef\xbf\xf7\x6f\x66\x37\x7e\x2e\x1b\xc0\x24\x12\xbf\x29\x76\xf1\x91\x33\x48\x33\xc6\x16\x74\x72\x78\x48\x19\x0c\x6f\xd2\x5b\x44\xa6\xf3\xf4\x4b\x10\xa6\xf1\xe1\xe7\x25\xa2\xdc\xc8\xd0\xc3\x3f\xfe\xf4\xe7\x3f\xfd\xe9\x3f\xff\xfc\xdf\x87\x19\xbf\x0e\x16\xf0\x1a\x27\x90\xbf\x3d\xf8\x82\xd9\x4c\xfc\x95\x93\x27\xa8\xbb\x41\xf7\x07\x69\x72\x00\x0f\xae\xc5\x5d\x05\x07\x34\x9b\x9f\x83\x47\xff\x82\x77\xad\x90\x38\xea\xad\x1b\xce\xe1\xed\xbe\xe0\xbd\xfb\x82\xf7\xee\x0b\xde\xbb\x2f\x78\xef\xbe\xe0\xbd\xd9\x17\xbc\x2d\x9e\x29\x23\x30\xa1\x30\x14\x96\xe7\x24\xe1\x4e\x51\xa4\xab\x3c\xd5\x49\x69\xf8\xac\x31\x5f\xc2\x52\xa1\x8b\xa5\x65\x5e\x9b\x23\xa1\x7c\xd4\xe0\xe6\x39\x2d\xbd\xff\xcf\xf9\xca\x9c\x1c\xe9\x81\x86\x63\x8c\x66\xb7\x38\xeb\x78\x0e\x6f\x2b\x4b\xff\x38\x89\xf8\x23\xfb\xf8\x2e\x17\x39\x7e\xe6\x0a\x44\xf8\xbb\x3c\x36\xa7\x60\x1f\xe5\xe1\x79\x90\x3f\x7e\xb1\xc4\xf3\x08\x91\x31\x88\x9f\xeb\x60\x5c\x28\xf0\x76\x9e\x20\x75\xc7\x39\x82\x0c\x3e\xcb\xf5\x9e\xf0\x7d\xaa\x31\x51\xfc\x6c\xd4\xb7\x6b\x3b\x4d\x50\x54\x60\x26\x09\x3b\xb9\x5b\x70\xcc\x9f\xf1\x7f\x7f\x85\x73\x9a\xfd\x5f\x64\xb3\xf2\xe1\xae\x38\x3e\x59\xf3\xa1\xce\x12\xff\xf1\x38\x01\xcf\x2d\x04\x38\xa7\x2a\x7e\xde\x82\x98\xe7\x1a\x31\xcf\x35\x62\x9e\x37\x12\xf3\xbc\x3d\x31\x3d\x5c\x8d\x60\xb2\x65\xf0\x1b\xc1\xf2\x0a\x30\x9a\xdf\x01\x96\xbd\x12\x4f\x27\xe0\x42\x73\xbb\x2a\xbd\x44\xb6\x42\xa6\x2c\xce\x96\x4c\xf7\x6d\xce\xb2\xe0\x48\xfe\x34\x5f\x23\xc6\x7f\x38\x48\x15\xbc\x48\x01\x92\x8f\xad\xe9\x26\xf9\xa3\x89\x85\x6c\x5b\x97\x62\x2c\xc4\xc6\xd9\x56\xa5\x45\x0d\xb1\x12\x8d\xc5\xf5\x6c\xea\xef\x7a\x82\x7b\xae\x4b\xd3\x4a\x3b\x95\xf4\xa0\x4e\x9e\x64\x62\xe6\x8c\xa0\x29\xbe\x73\xf1\xe7\xb9\x07\x7f\x9e\xb7\xe0\xcf\xf3\x16\xfc\x79\xee\xe6\x0f\xff\x6b\x0d\x40\x1f\x00\xc7\xed\x74\x55\xe1\xab\xf8\x5e\xea\x72\xdd\x1a\x9b\x21\xd5\xae\xb9\x3a\x42\x5f\x45\x35\x54\xc9\xee\xb1\x4f\x78\x31\xb6\x64\xc9\xb5\xf4\x7e\x8f\xfb\x9a\xa1\x42\x01\xa8\xf7\xf2\x29\x52\xfc\xf4\x19\xa5\xe8\x21\xb8\x6a\x19\x53\x24\xdd\x34\x12\x8d\x45\xcf\x3b\xe6\xaa\x3d\xd3\x5a\x05\x0b\xde\xa3\x2f\xea\xed\x70\x14\x28\x6e\x4b\x38\xc3\xfd\x02\xe4\x28\x10\x8d\x86\x1e\x01\xae\x48\x42\x15\x7f\x65\x2e\x9c\xf4\x14\x72\x6e\x1c\xe9\x78\x15\xf3\xa0\x06\xc8\xd9\x63\x36\x93\xf2\xa8\xb5\x91\x0c\x31\x1b\x89\x67\xc3\x51\xbf\xa7\xf9\x15\x61\xae\x54\x51\xae\x52\x51\xa1\x50\x8b\xab\xf5\x32\x11\x3a\x3c\x74\x98\x26\xf5\x98\x02\x58\xb1\xea\x00\xf2\xa7\x99\x38\xf3\x69\xe2\x5e\x5c\x9e\x3a\x00\xe2\xab\xce\x34\x90\xe2\xe9\x32\x7c\x2e\x03\x3e\x02\x43\x2f\x81\xcc\x85\xaf\x54\xb8\x65\xe4\x49\x54\xe6\x43\x31\xa7\xed\x75\x9c\xd9\x37\xd7\xcc\xa7\x13\x10\x8f\xa5\xf3\x67\xc6\x8a\xb7\x70\xde\xf9\xe2\xcf\xa6\x91\x6a\xad\x5c\x29\x19\x9a\xbb\xd9\x31\xbc\x41\x80\x2e\x09\x2a\x4a\xc5\x8a\x49\xa2\xca\xab\x0e\x65\x86\x09\x50\xb4\x80\x04\xb2\x94\x80\x70\x06\x09\x0c\x19\x22\xd4\xa8\xff\xf8\x81\x32\x72\x46\xd2\x05\x22\x0c\x23\x7a\x5a\xe4\xa3\x68\x51\xa8\xe7\x78\x6f\x3a\xad\x3a\x50\xed\x7a\x53\x8a\x16\x02\x50\x4a\x18\x8a\xde\xa1\x7b\x5a\x37\xa2\x1d\x4c\x4e\x26\xef\xa5\xed\xe3\xba\xe1\x88\x51\xb3\xec\xb5\x2a\x36\x0c\xb2\xa4\xdb\x70\xb5\x2a\xf8\xf5\x31\x15\xa6\xa9\x7a\x1b\x85\x39\xe8\x20\x0e\x06\xc2\x65\x14\x59\x00\x09\x7d\x30\xb2\xcc\x97\x1e\xbf\x66\x09\xdd\x02\x4c\x71\x2b\x57\x36\x3f\x3f\x16\xf0\x7e\xcc\x52\x64\xdd\xf1\x1b\x19\xb2\xd2\x54\x37\x7a\x78\x08\x60\x14\x01\x9c\x58\x05\xa9\x5c\x51\x67\x24\x2e\x1b\xb2\x96\xcd\x27\x45\x16\xf9\x95\xb8\x5b\xb9\x55\xd7\x22\x78\x9e\xf7\xea\xaa\x05\xfa\xd5\x6f\xd6\x8d\x2b\x57\xeb\x36\xcb\x80\x05\x4a\x30\x30\x2f\xde\x05\xa5\x1f\x43\x00\x5a\x6a\xa0\x69\x4a\xc0\xcd\x18\xdc\x16\x39\x95\x62\x16\x55\xc7\x5b\x38\xbf\xb8\xb9\x04\x47\xe0\xd6\x47\x12\x37\xb9\x07\x76\x03\xe9\xb4\x26\xe7\xb5\x1d\xa6\xf2\x6e\x42\x67\x09\x7d\x73\x7e\x6a\x8a\x56\x19\xb2\x55\x70\xa9\x14\x5c\x0b\x96\x65\x49\xa5\xed\x25\xd5\xd2\xa5\x5e\x52\x2b\x1d\x3a\x49\xaa\x05\xca\xe3\x4a\x6a\xed\x04\x77\x12\xde\xfc\x91\x42\x21\xf3\x13\x74\x4f\x5e\x3a\x62\xf6\xdc\xa8\xcc\x9e\xcc\x21\xb3\xfb\x62\x94\xa5\x04\x09\xe5\x9c\x3b\x64\x2c\xb5\x37\x24\xcb\x90\x29\xaf\xcc\xb1\x45\x1b\xfb\x05\x03\x22\x0d\xec\xf4\xdf\x8a\x14\x08\x77\xe7\x2d\xe2\x6e\x7b\x66\x6e\x20\x57\xd6\xcf\x3f\x92\xb8\x58\x41\xf1\x18\xec\x59\x40\xd4\xec\x17\x17\x33\xbe\xcf\x71\x3f\xb2\x61\x60\xdb\xd3\x36\x54\x87\x3a\xc4\x97\xfe\x0b\x85\xd9\xce\x6b\x96\x32\x2f\xab\x11\x9a\x1b\xce\x05\x24\xd4\xe1\x80\x4d\x49\x1a\x83\x1c\x1e\xc8\xf7\x85\xa4\x8e\xe2\xb3\x9d\x44\x60\x8a\xe7\x73\x09\x09\x27\xd2\x65\xe6\x5d\x94\x2f\x63\x53\x92\x26\x82\x2e\xf4\xe4\x6e\x50\x0b\x52\x2a\xe3\xdc\xd8\x80\x78\x82\xe8\xb4\x9f\xa4\xdc\xd0\x10\x8a\xa4\x35\x4e\xa2\x06\xed\x5d\x07\x09\x4f\xc1\x6d\x56\x9d\x12\xd7\xec\xd8\x88\x3a\x95\xbd\x3d\x70\x1b\x9c\x9b\x72\xb5\x80\x84\x69\x8e\x2f\x0d\xce\x17\x73\xcc\x86\xfb\xb7\xc1\xb9\xf2\xfd\x42\x18\x9c\xe7\x3e\x75\x7e\x97\x8d\xaa\x19\x11\xdd\x47\x1c\xe4\x6a\x25\xe5\x2a\x84\x41\xe1\xa3\x16\xaa\xc6\xbe\x9b\x7a\xb7\x90\x22\xe3\xec\x2c\xe0\x4f\xc0\x8f\x4f\x9f\xd2\x1f\x07\x63\xc0\xd1\x1a\x69\xc1\x69\x59\x7d\xaa\x29\xc5\x63\x31\x9f\xc2\x75\xae\xc0\x14\x1d\xd3\xca\x55\x4f\x0b\xe5\xae\x72\x4a\x7c\xaa\xed\x45\xeb\x3d\x55\x55\x2f\xd0\xbc\xe0\xdc\xc2\x60\xbd\xbe\x6c\x50\xed\xde\x8a\xb6\x95\x3a\x56\x21\xb1\x53\xfd\x52\x53\xff\xce\x31\x15\x7b\x16\xd5\x66\x2e\x45\x4c\xe7\x38\x44\xb6\x2e\x4a\x23\xd3\x5a\x95\x4c\x87\x31\x05\x17\x97\x1e\x6a\x79\x04\x86\x17\x97\x3e\xa5\x98\xce\x2a\x19\x79\x52\x1a\xde\xa0\x3a\x40\x5c\x7c\x63\x2a\xf6\xd4\xc4\xc6\xd9\x18\xc4\x85\xf5\xcc\x37\xce\xba\x16\x11\x79\x94\x11\xc5\x6d\x6b\x86\x6c\xc6\xbf\xb8\xdd\xd8\xc5\x8b\x0b\x7c\x29\x84\xda\xf1\xde\xdc\xce\x71\x83\xc9\x72\x2e\xff\x1f\x00\x00\xff\xff\x81\x04\x6e\x7f\xd6\xcb\x00\x00") +var _tableGoTmpl = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3d\x6b\x73\xdb\x38\x92\x9f\xa5\x5f\x81\xe8\x26\x1e\xc9\x2b\xd3\x93\xdc\xd6\xdd\xae\x76\xbd\x55\x4e\xe2\x24\xae\xec\x64\x7c\x71\x76\xe6\xaa\x5c\xae\x2c\x4c\x42\x16\xd6\x22\xa9\x00\x90\x63\x9f\x56\xff\xfd\x0a\x0f\x92\x00\x09\x90\x20\x25\x3b\xc9\x94\x5c\x95\x87\x49\xa0\xd1\xdd\x68\xf4\x0b\x0d\x70\xb5\x3a\x00\x3f\xc4\x69\x84\xe6\xef\x61\x8c\xc0\xe4\x08\x2c\x20\x0d\xe1\x1c\xff\x1f\x02\xc1\xff\xbe\x7a\xf1\x32\x4d\xa6\xf8\x3a\x38\x0f\x67\x28\x86\xa2\xc9\x7a\xdd\x17\x9d\xee\xa2\x2b\xf9\x92\x77\x2a\x9a\xe6\xef\xe7\x28\x79\x99\xc6\x8b\x94\x62\x86\x8e\x19\x23\x94\xb7\x9b\xa3\x44\xeb\x19\x18\x0d\xf0\xd5\x92\x21\x9a\xf7\x9f\x41\x5a\xed\x7f\xcd\x6c\x80\x7f\xca\x3b\x2d\x48\xfa\x2f\x14\x32\x14\x9d\x26\x11\xba\x43\xf4\x37\xcc\x66\xb6\x41\x38\x9d\x9e\x4d\x35\x42\x35\xd2\xce\xfc\x07\x12\x34\xfb\x8e\xa6\x51\xdf\x62\x08\xc5\x16\xdf\x1e\x05\xbf\x28\x23\x38\xb9\x3e\x23\xe9\x02\x11\x86\x11\x3d\x2d\x58\x2b\x00\xd7\xbe\xb7\x73\xe6\xbc\x01\xa4\x60\x47\x2d\x5c\x8d\x07\x4d\xc0\x14\xe1\xb5\xcd\x04\xb5\x0b\x18\xde\xc0\x6b\x04\xa2\xfb\x04\xc6\x69\x74\xd5\xef\xe3\x78\x91\x12\x06\x86\x7d\x00\x06\x61\x9a\x30\x74\xc7\x06\xfc\xff\xd3\x58\xfc\x2b\x7f\x38\x1e\x78\x0a\x52\xd2\x6a\x46\x1a\x31\x5f\xaf\xf3\x11\x06\x92\x15\xd4\x1c\x13\x25\x11\x6f\xc4\xf1\x59\xad\x40\xf0\x73\x1a\x2d\xe7\x48\x2d\xbf\xd5\x2a\x78\x93\xfe\xb2\x64\x8b\x25\x3b\x83\x6c\xb6\x5e\x1f\x8a\xf5\x4b\x57\xab\xe0\x57\x44\x28\x4e\x93\xf3\xe5\x74\x8a\xef\xd6\xeb\x41\xd6\xff\x4c\x52\xaf\x00\x1c\xf2\x47\x05\x00\xa0\x1a\x5e\x63\x36\x5b\x5e\x05\x61\x1a\x1f\xc2\x2f\x94\xff\x39\xa0\xd1\xcd\xc1\x75\xca\xff\x5b\x61\x49\x92\x32\x7d\x25\x1f\xcf\xe7\xe9\x97\x5f\x6e\x11\xf9\x42\x0a\x0a\xeb\x41\xf2\x3f\x88\x10\x2b\xe1\xb5\x7d\x29\x22\xb7\x38\x44\x87\xd9\x5c\x36\x60\x5f\x6e\x9e\xff\x07\x66\x33\xd6\x15\x00\x9e\xc2\x50\x74\x56\x3c\x61\x04\x26\x14\x86\x0c\xa7\x09\x3d\x49\xe0\xd5\x1c\x45\xa5\x45\xd2\x6e\x1c\x74\xb7\x20\x88\xf2\x19\xcd\x06\xb1\xb2\xe7\x3a\x3d\x48\x17\x28\x81\x0b\x7c\x48\x19\x11\xf2\x3b\xea\xf7\x6f\x21\x01\x9f\x80\x58\xc2\xd3\x98\x05\xaf\x20\x43\x1f\x71\x8c\x56\xeb\x7e\xff\xf0\x10\xac\x56\xba\xda\x5f\xaf\x3f\x72\x6c\x01\x41\x7c\x40\x94\x30\x0a\xd8\x0c\x81\x25\x45\xe4\x20\x14\xc8\x2f\x89\x68\xb0\xc8\xe5\x19\xa4\x53\xd1\xa6\x0c\x08\x30\xde\x30\xe8\xb3\xfb\x45\xf5\xa5\x1c\x85\x32\xb2\x0c\x19\x58\xf5\x01\x78\x25\x48\x7d\xf5\xe2\xf8\xec\x34\x93\x02\x83\xb9\x81\xd6\xa0\x0f\xc0\x19\x41\x53\x7c\x07\xf4\x1f\xb9\x7c\xfa\x00\x08\xd8\x62\x9c\xea\xbb\x0f\x08\x46\x2f\xe1\x02\x86\x98\xdd\xff\x23\xc1\x8c\x02\x80\x13\xf6\x5f\x7f\xec\x03\xf0\x1b\x97\x57\xf3\x9d\x7c\x25\xf9\x14\x45\x57\x65\x22\xce\x08\x8e\x21\xb9\x7f\x87\xee\xcb\xfc\x5a\xc8\x37\xe0\x06\xdd\x73\xf6\xc0\x2a\x73\x70\x92\x93\xac\x58\x54\x3f\x80\xc6\x2a\x3e\xfd\x87\xfb\x60\x9e\xa6\x0b\x90\xde\x22\x62\x8c\x06\x0b\xe5\x03\x93\x08\xc0\x28\xe2\x08\xc5\x00\x52\x30\xc5\x68\x1e\x71\xa2\x04\x8a\x0a\xe0\xfe\xa1\x90\x22\x0e\x93\xc0\xe4\x1a\x81\x1f\x3e\x8d\xc1\x0f\x8b\x1b\xae\x53\xb5\x55\x9d\xe3\xfa\x0e\xdd\x4b\x17\x00\xa8\x7e\x9a\x9b\xf0\xc3\xe2\x26\xc8\x95\x5f\x46\xe8\x6a\x05\xae\xd3\x8f\xf7\x0b\xf4\x3a\x25\xf9\x4b\x7d\x31\x58\x7b\xfd\x33\x5f\x9a\xb7\x13\xae\xb8\x6c\x8d\x06\xff\x34\xd7\xc2\xba\xdf\x5f\xad\x32\x2a\xae\x29\x76\x91\xf0\x66\x9e\x5e\xc1\xf9\x39\x0a\xd3\x24\x82\xe4\x5e\xa9\x70\x0e\x21\x9b\xe6\x62\x12\xd6\xeb\x37\xe7\xa7\x26\x91\xd7\x14\x07\xa2\x4f\x86\x6b\x69\xee\x39\xb6\x95\x36\x6f\xce\x4f\xf5\x69\x6e\x37\x80\x31\xf7\x19\x81\x37\xc2\xec\x89\xc6\x95\x39\x39\xd0\xc1\xdd\xd0\x2e\x93\x62\xeb\x55\x99\x14\x4b\x23\x31\x29\x99\x16\x2f\x66\xa6\xf8\xbf\x63\x2d\xe9\x5c\xb4\x2c\x17\x48\x01\x65\x29\x41\x91\xdf\xc2\xd1\x59\x26\x6d\x62\x50\x6e\xc2\xc5\x65\xba\x4c\x42\x30\x64\x76\xed\x34\x02\x09\x8c\xd1\x70\xa4\x94\x87\x80\xc5\x55\x7b\x50\xe8\x97\x27\x47\x60\x30\x10\x2f\x00\x20\x88\x2d\x49\xa2\xbf\xee\x03\xc0\xa7\x43\xbd\xe0\xaa\xf7\x7c\x41\x70\xc2\xa6\xc3\xc1\xd3\xa7\xf4\x60\xb5\x02\x11\xa4\x33\x44\xc4\x2c\xe9\xc3\xd3\xc1\x18\xb0\x40\xaa\xb8\x91\x07\x9e\x21\x41\x90\xa1\x61\xc8\xee\x80\xf2\x5f\x82\x97\xf2\xdf\x11\x40\x84\xa4\x24\xc3\xfd\xd3\x98\xff\xce\xe5\x86\xe9\xfa\x34\x78\x29\x00\x08\x68\xd2\x93\x11\x9d\x39\xc0\x31\xd8\xcb\x26\x5d\x6f\x75\x9a\x2c\x96\x4c\xd2\x9d\x0b\xc0\x2b\x34\xc5\x09\x16\x26\x6f\x02\x2e\x2e\xf7\xf3\x7e\x96\x16\xab\x3e\x70\xfc\x08\x7f\x0f\x66\x5e\x3e\xd4\xa5\x8b\xda\x56\xb3\xee\x41\xd9\x60\xa9\xd5\xc2\x01\x89\xf5\x22\x41\xe7\x9d\x0a\x44\x0c\x41\x9e\x00\xf8\x85\x06\xd2\x73\x1b\x0e\x72\x9c\xb8\x7c\x8f\xc6\xd5\x2e\x7c\x25\x95\xbb\x28\xf3\xf5\xea\x45\xed\x32\xab\x40\x5d\x8f\x6b\xc9\xc9\xcd\x7e\xde\x32\x5f\xfc\x26\xd3\xf3\xc7\x27\x73\x14\xa3\x84\xd5\x73\x5c\x53\xfd\x4a\xaf\x34\xab\xfe\x76\xec\xb3\xa9\x8a\x91\x9b\x56\x1d\x39\x3c\x05\xe8\xb3\x80\xf0\x0e\xdd\x73\x6e\x82\xc1\xdb\xe3\xf3\xb7\x03\x7d\xea\xd5\x9b\x89\xfa\x55\x1b\x5e\xe7\x08\x6f\xf2\x16\xd2\x99\xe7\xc0\x68\x4e\x91\x6d\xf4\x0f\xc7\xef\xdf\x9c\x74\x1c\xfe\x03\xe7\xb4\xef\xf8\xc5\x64\x77\x10\x8c\x72\x0b\x1e\x1e\xbd\x39\x3f\xb5\x45\xdf\x1e\xa6\xd1\x31\x31\x2a\xec\x12\x70\x7f\xca\xda\xd9\xa1\x98\xf2\x69\x6b\xe3\x25\xa3\x9d\x0c\xbb\x82\x92\xc3\xcf\xcd\x6b\x65\xd5\x56\xac\xaf\x2e\xa5\x2a\xec\xc3\x69\x32\xd1\xf4\x62\xf1\x54\x27\xa0\x78\x6a\xd5\x0e\x62\x9c\xa2\x4d\x60\x36\x2f\x8d\xab\xcd\xe8\xc6\xcb\xbd\x86\xb5\xda\xf2\xb7\xb8\x15\x79\x07\x6f\xd0\x0f\xa6\x15\x4c\xec\x7d\xf4\x03\x78\x08\x1d\x61\xa2\xe1\xaf\x2d\xda\x21\xe3\xab\x31\x4a\xd8\xe8\xba\x03\xd4\xeb\x0f\x8f\xfe\x6b\x63\x11\xdc\x62\x1e\x8a\xa2\xe8\xe3\x8c\xa4\xcb\xeb\xd9\x62\xc9\x4a\xeb\xa1\xda\x40\x97\x9a\x4a\x10\x36\x91\x0c\x38\xe5\xe1\xd6\x90\x05\x95\xf7\x06\xf5\xd5\x38\x6d\x62\xf4\xae\xbe\xb7\xad\xa4\x8d\xd5\xa9\xd6\x62\x33\x8e\x74\xe7\x46\x67\x4e\x28\x92\x72\x4f\xd5\x58\x99\x2c\x90\x7e\xaf\x68\xbb\x1e\xfd\x45\xb8\x8c\x4f\x8e\x40\x82\xe7\xa6\xab\x8b\x08\x31\x5d\xdc\x04\xcf\x3d\xbc\x55\x0a\x6f\x51\xf9\x95\xcd\x77\x1d\x83\xd8\xe5\xbb\xeb\x6e\x6d\x04\x19\xcc\xdd\x5a\x94\x84\x69\x54\x85\x1e\x8f\xa4\xff\xdb\x4c\x49\x31\xbf\x78\xda\x98\xd5\x52\xee\x74\xd9\x9b\x3e\x5b\xb2\x53\x86\xe2\x1a\x4f\x5a\xb5\xd0\xbc\x68\x8f\xa9\x00\x80\xf7\x51\x0a\x43\x50\x2d\xe6\xa7\x5f\xa2\x42\x93\x50\xae\x90\xbe\x15\x44\x01\x38\xc9\x73\x58\x86\xca\xa7\x13\x10\xc3\xc5\x85\x0c\xb2\x2e\xf7\xe5\xbf\xd9\xda\xe8\x9a\x96\xe0\x3f\x83\xff\x58\xad\xc0\x72\xb1\x40\xc4\x9e\x3d\xa8\x9a\x64\x5b\xab\x7c\xb1\xd9\xb5\xc2\xcb\x34\x89\x44\x44\x53\x50\x67\xc2\xb5\x68\x19\x8d\x28\xec\x49\xd4\x81\x35\xca\xc9\x12\xb0\x1c\x90\xf0\xbe\xc0\xf1\xfb\x57\x59\xd8\x6d\xef\x92\x07\x54\x9f\x92\x94\x7d\x42\x77\x98\x32\x3a\xac\x67\xd4\xc8\x31\xb2\x7b\x10\xc5\xff\xd1\xb8\xdf\x5b\x8f\xfa\xbd\xf2\xc2\xeb\xf1\x27\x10\x11\x32\x06\xa9\xa0\x1d\x11\x12\x0c\x65\x0e\x38\x38\xe1\x0b\x7b\xf4\x17\xfe\x86\xb7\xec\xd1\x2f\x98\x85\x33\xd1\x3c\x78\x99\x46\x3c\x1e\x17\xcf\x7b\x21\xa4\x45\x12\x9f\x77\xe3\x6f\xf3\xe9\x80\xf3\x97\x33\x14\xde\xbc\x86\x78\x8e\xa2\x93\xbb\x10\x2d\x84\xd7\x26\x7a\xf6\xd4\x7a\x91\xdd\xca\xca\xe2\x78\x4e\x10\x8c\xee\x4f\x04\x6b\xe4\x50\xbd\x5e\x37\x39\xcc\xfa\x36\xa4\xc8\x26\x7c\xca\xf0\x14\xe0\x62\x9b\xab\x29\x3f\xb6\x5a\x81\x30\x6b\xfb\x2b\x9c\x2f\x1b\x3a\x0c\xe2\x81\xec\xa4\x54\xc2\x6a\x55\x08\xc2\xc7\xf4\x67\x4e\xbd\x17\x94\x20\x03\x23\xd6\xc1\x58\x63\x8e\x5a\x19\xe2\xf7\xb5\x7b\x7e\x3e\x20\x9a\x2e\x49\x88\xde\xa7\xec\x75\xba\x4c\x5c\x33\x33\x8d\x99\x14\x84\xe9\x70\x20\xb2\xc8\x20\x25\x00\x73\xa7\x5c\xec\x36\x4c\x79\xd7\x09\x78\xfa\x54\x26\x4a\x94\xea\xe9\xab\xa1\xf9\x1f\x4d\x23\xf2\xdf\x35\xfb\x54\x96\xe0\x2c\x6f\x68\x55\xf8\x2f\x20\x0b\x67\xbf\xe5\x1a\xdf\xc3\xb0\x1d\x13\x02\xef\x7f\x99\x7a\xda\x37\x0a\x2e\x2e\x1b\x4d\x1c\x5f\x2d\x73\x94\x0c\x63\x3a\x02\x7f\x03\x31\xbc\xcb\x84\x4d\x60\xc7\x55\x2d\x15\x4b\xc2\xc2\xbb\x1a\x8c\x00\x41\x21\xc2\xb7\x28\x02\x4f\x9f\x46\x00\x0b\x28\x2c\x15\x34\x8c\xc1\x97\x19\x0e\x67\x00\x53\x70\x2d\x52\x3e\x04\xb0\x19\x94\x59\xe3\x18\xde\xe1\x78\x19\x83\x74\xca\xfb\x0d\xc6\x19\x66\x63\x3b\x62\x23\xce\x7e\x83\x82\xa3\x23\xf0\x93\x8e\x2e\x9f\x13\xd1\xe6\x8a\x77\xe2\xcb\x2a\x86\x37\x68\xa8\xc7\x36\x62\x02\x3e\xa0\xcf\x4b\x44\x59\x3e\xe0\xa8\xdf\x9b\x72\xa1\xe0\x3d\xe4\xca\x94\x6c\xf0\x72\x07\xe8\x05\xbe\x1c\x49\x3d\x54\xd2\x4c\x86\xe4\x08\x51\x12\x78\x5d\xe0\x4b\x70\xa4\xd9\x45\x1d\x25\xd1\xed\x6c\xc9\xd4\xaf\x13\xd3\x7c\xea\x8d\x7a\xd2\x2e\x4a\x93\xc8\xa5\x75\x2c\xc7\x58\xf7\x7b\x2c\x51\x9b\xee\x99\x38\x4b\xf2\x94\xb2\x4c\x97\xcc\x91\xb9\x2b\x24\xb4\xc1\x92\x9b\x0d\x95\x41\xef\xf5\x7a\x0a\x3f\x31\x5b\x86\x25\x76\xcd\x80\xa4\x44\xe0\x3b\x01\x82\x39\x1a\x2d\x65\x6f\xd1\xbe\xa4\x4d\x5c\xf8\x42\xbe\x1d\x08\xfa\xf8\x9c\xac\xf3\x40\x2a\x5d\xb2\xe0\x1f\xc9\x82\xa4\x21\xa2\x14\x45\x52\xd2\x15\xe8\xbd\x3d\x21\x08\xb6\x26\x17\x02\xb7\x4b\xbe\x58\xa4\xa4\x29\xd1\x3a\xb2\x02\x54\xad\x8b\x81\x65\x0f\x82\xe0\x4d\x3e\x39\xad\xdc\xdb\x08\xcd\x11\xfb\xc6\xf4\x40\x2d\x4e\x0e\x4d\x20\xfb\x6c\x5b\x17\x00\xf0\xa8\xda\xa0\x77\x83\xee\xf3\x95\x53\xd9\xed\x0d\x7e\x86\x84\xce\xe0\xfc\x67\xb8\x18\xd6\xee\xbe\x71\x48\x9d\x5d\x80\x47\xb1\xff\xaf\x49\x1a\x8b\xf9\x6d\x32\xe1\x5c\xf5\x0d\x4a\xbe\x00\x77\xc7\xb2\x66\xa7\xf4\x2c\xc5\x09\x9f\xe7\x06\x14\xf6\x73\x3f\x40\xc0\x0c\x1a\xc9\x34\xfc\x06\xc3\x67\x58\xfb\xe9\x62\x6f\x65\xfc\x4a\x88\xae\x45\x1f\x1b\x2f\xa4\x22\x7b\x87\xee\x27\x80\x4b\xc9\x4e\x21\x7f\xa7\x0a\x59\xaf\x92\x91\x51\x9c\x70\x68\xcd\x20\x53\xa8\x92\xea\xe3\xd7\x29\x11\xb9\x5e\x43\xd8\x9b\xd6\x74\x83\x01\xb8\x46\xcc\x4b\xed\x57\x77\xdd\x8d\xdd\x2e\xa1\x5e\xec\xb4\xe4\xbb\xbc\xb7\x90\x08\x31\x2d\xf5\xf4\xda\xe0\x2d\x77\x19\xf7\xcd\xb0\x6e\x04\x86\xfb\x0e\x9b\x34\x96\x36\x49\x44\x62\x5f\x5f\xc1\x7e\x0b\xf1\x55\x25\xbc\xca\x67\xa6\x8d\x22\xb4\x07\xcb\x85\xb0\x8f\xb5\x80\x86\x3a\xf4\xcf\x1b\xd4\x94\xd3\x51\x2d\x72\x8d\x23\x34\xa0\xfc\x51\x7a\xb0\x31\xc7\xd3\xeb\xbd\x4c\x13\x8a\x29\x43\x09\xfb\x80\x60\x24\xdb\xbd\x48\xd3\xf9\x90\x91\x25\xca\x02\x7f\xaf\x34\x9a\x27\xc5\x7a\x42\xeb\x31\x33\x0a\x9e\x11\xab\xc0\x75\x5b\x61\x6b\x95\xf0\xbc\x08\x50\xf9\x4e\x04\xd1\x80\x4f\x62\xee\x41\x69\xc9\x4c\xd1\xdb\x9e\xdb\xc8\x88\x90\xed\x37\xd1\x3e\xe5\xca\x9f\xb2\x36\x11\x6b\xce\xa9\x9e\xc6\x7d\x5b\x46\x4d\xa4\x60\xfb\x80\x77\x73\xa7\x7e\x8b\x44\x2e\x57\x38\xc8\x1a\xdf\x65\xdc\x19\x83\xbd\xb8\x26\x7f\x9d\xb3\x59\x8d\xab\x1e\xef\xc5\xe3\xcc\xd5\x97\x7a\xa3\x2c\xbf\x4a\x6d\x09\xc3\x71\x1e\xc2\xc4\x27\x35\x10\xc2\xa4\xfc\x8a\xda\x83\x01\xcc\xd7\x25\x9f\xbf\x73\x5b\x1f\xb1\x6a\xc7\x60\x9a\x00\x3e\xe2\x30\x06\x6e\x1d\x3d\x87\xb4\x62\x88\xc0\x55\x9a\xce\x47\xea\xef\x22\x87\xce\xd1\x13\x90\x39\x53\x0b\x4d\x71\x9e\x3d\xae\xa4\x7e\x65\x2e\xd1\x99\xff\x75\x6a\x87\x27\x82\xba\xe0\x15\xa6\x1c\x96\xd9\x4c\xf5\xfd\x3b\x8e\x31\x9b\x14\x69\x44\xd9\x43\x3c\x1d\xab\x24\x3d\xd7\xe5\xe2\xe9\x39\x83\x84\xe1\xe4\xfa\x78\xca\x1d\x56\x6d\x8e\x95\xe6\x11\x6b\x8f\x73\x16\xe2\x84\xbe\x4f\x93\x6a\x89\x6e\x2b\xc3\xcf\xd1\x41\x77\xe1\x7c\x49\xf1\x2d\x12\x63\xbf\xf3\xb5\x7e\x16\x7c\x65\x5e\xd5\xb6\x2b\x61\xd4\x0c\x65\x0a\x45\xce\x96\xc8\x68\xe0\xe4\xba\xc0\x03\x50\x0e\x54\xd4\xfe\x71\x07\x95\x4f\x65\xa6\x63\x72\xed\xc7\xd5\x4c\xb6\xc4\x4a\xab\xee\xf0\x10\xc4\x4b\xca\xc0\x82\xa4\xb7\x38\x42\x20\x4d\xe6\xf7\x22\xba\x53\xd5\x82\x61\x9a\x50\x86\xd9\x92\xa3\x2d\x9e\x0b\x9e\x8a\xae\xb9\xd4\x04\x27\x65\xa6\x80\x23\x23\xa9\x5f\x2d\x05\x12\x46\xd5\xb6\x93\xac\x29\xa5\x56\x95\x28\xd6\xcc\xb8\xcb\xe2\x5b\xb6\x9d\xb3\x4d\x03\x57\x59\x9b\x1e\x46\xb8\xa9\x38\x37\x2c\xe6\x6a\x65\x3a\x11\x67\xf0\xba\x01\x8f\x81\x45\x4e\x06\xeb\x75\x53\x75\x90\xb9\xdb\xd3\x40\x87\x4d\x88\x2f\x9c\xed\x2f\x6b\x46\x2c\x6f\x31\x3b\x5e\xae\xd5\xb2\x65\x29\x83\xf3\x0f\x28\x4c\x49\x44\xcf\x32\x9f\x9f\x4f\xb1\x28\xb3\x1d\xfe\x34\x52\xba\x1f\x27\x09\x22\x27\x84\x48\x05\xd5\x07\x76\x47\x87\x2b\x27\xce\x50\x5a\x71\x75\x72\xb9\x1c\x4b\x25\x99\x2e\x19\xd8\x37\x94\x9a\x2c\x79\x97\x2a\x52\x4c\x4a\xa1\x16\xd5\x12\x14\x69\x90\x71\xbd\x9d\xa1\x22\xda\x51\xb9\x0d\xf7\x5a\xce\xc9\x39\xb2\xac\x67\x01\x99\x2f\x2d\xc7\x8a\x2d\x54\x01\x9c\x53\x94\xb3\x13\x80\x52\xba\x03\xab\xf4\x8f\x1a\x72\xaa\xab\x4d\x54\x41\x49\xb7\xa1\x46\xc3\xe0\x37\x88\x05\x17\x6d\x66\xb3\x42\x8e\xbe\xe1\x68\x41\xb4\x40\xb6\xf8\x17\xd3\xbf\x43\xca\x84\x5b\x21\xea\x90\xb2\x09\xd8\xdb\x03\x98\xfb\x32\xdc\xb9\x11\xb4\x8c\x0e\x9e\x15\xc4\xd0\x59\xba\x9c\x47\x7c\x92\x71\xb2\x14\xbe\xc9\x34\x19\xee\x89\x76\x17\xf8\x72\xac\x43\x1d\xfd\x05\x3c\x29\x35\x2f\xb0\xb7\xa0\x98\x21\x66\x15\xce\x3f\xfc\x41\xbd\x3d\x3c\x14\xa5\x9f\x33\x24\xcd\x13\x48\xa7\x80\xc8\xb6\x60\x06\x6f\x11\xb8\x42\x28\xe1\xee\x10\x17\x68\x96\x82\x69\x32\x06\x51\x9a\xfc\xc8\xc4\x33\x00\x93\xfb\x38\x25\x28\xeb\x12\x58\x67\x49\x0b\xa4\xed\x0b\xe5\xe8\x08\xec\xeb\xed\x3d\xc8\x5a\x1b\x95\xa9\x64\x89\xb2\x1d\x63\x31\xb4\x9a\x47\x9b\x6b\x94\xbd\x34\xf7\xf7\xf9\x7c\x57\xe2\xed\xcc\xcc\xbe\x85\x54\x54\xaa\x70\xed\xdf\xa8\xb3\x45\xf1\x0f\x57\x8e\xcb\xec\x0c\x4d\xe6\x74\xe2\xfc\x17\x3f\x20\x33\x48\x67\x7c\xc8\xac\x6b\x43\xb7\xe2\xc0\x13\xc9\x90\xf5\xec\xf9\xac\xd2\xd3\x3c\x79\x65\xcf\x2e\x64\x55\x40\xde\x6e\x86\x56\x2e\x94\x15\xed\x7d\xb0\x8e\x27\x4a\xf8\x2c\xa8\x94\x18\xf3\x30\x48\xe6\xf5\x55\x19\x8e\x6f\x6d\xa3\x09\x14\xab\x78\xe4\x47\xf4\x1e\x3a\x51\x23\x46\x49\xd2\x44\xf4\xac\x0e\x93\xbd\xb1\x61\x61\x86\xfb\x96\x16\x1a\xed\xef\xcb\x23\x14\xc4\x3b\x06\x5f\x17\x5b\x8e\xaa\x80\xd2\x02\x43\x95\x53\x5a\x23\x8b\xba\x64\x13\x7d\x71\xcf\x1f\x55\x57\xd7\x7a\x7d\x06\x09\x45\xaf\xf1\x9c\x21\x42\x87\x9f\x97\x88\x07\x31\x0b\xc3\x3a\xfe\x4f\xfe\x50\x8b\x44\xde\xb4\x1a\x44\xf4\x1e\x29\x7d\xc2\xcd\xd4\xa7\x31\x98\x8a\x31\x65\x26\xa5\xb0\x59\x42\x99\xbd\x2e\x5e\x15\x06\x4c\xc5\xe8\x5a\xb7\x92\x67\x62\x29\x10\xa9\xc6\xaf\x76\xee\xe7\x2e\x8b\x8c\xf7\xaf\x2a\xa1\x53\x43\x64\x9b\xab\xdd\x82\x81\x81\xab\xb6\xe5\x42\x2f\x42\x29\x43\x1a\x5c\x82\x23\xdd\x5d\xa4\xaa\xfe\xaf\x2d\x46\xa3\x91\xb1\xab\x2d\xde\xbf\xd2\x8a\xcf\x8b\xe0\xc4\xa3\x18\xdd\xe2\x13\x6b\x60\xdf\xa4\x19\xc0\x96\xd9\xc5\x1c\x94\xf0\x5b\xc6\xc5\x7e\x43\x49\x26\xac\x33\x5e\x12\x0e\x60\xd6\x7d\x56\xc8\x1d\x9c\x57\xaa\x2d\x4b\xcd\x15\x19\x83\xd2\x89\xb8\x4a\xb7\xa6\x39\x96\x88\x5d\x18\x47\x3b\x26\x4f\x9f\xd2\x4f\xb7\xfc\x85\xdc\x14\xeb\x3c\xab\x63\x80\x47\xe6\x46\x47\x53\xf4\x64\x46\x1f\x2c\x95\x5c\xe1\x94\xa9\x47\x26\xd7\x83\xe1\x6a\xa5\xb1\x83\x0b\x52\xa5\xcc\xb4\xca\x46\x33\xce\xf8\x1d\xf0\xa9\xcc\x14\x89\x88\x17\x2b\xca\x01\x50\xb9\x0c\xb8\x2a\x9a\xef\x2b\x32\xf6\x1d\x71\xee\xbd\xc1\xb7\x02\xa7\xd6\x72\xd5\x8e\x67\x2f\xbe\x67\x9e\xbd\x98\x80\x26\xee\x34\xf0\xa6\x54\x88\x6d\x2f\x47\xd4\x3d\x7e\xd3\x45\xdf\xa6\xff\xd0\x90\xb1\xec\xe0\x27\x6c\x3d\x95\x69\xba\x55\x16\xd7\xf9\x59\xc6\x32\x3c\x05\xe5\xb4\x9c\x1e\x84\xb9\x33\x8c\xa3\xba\x34\xdd\x4b\x98\x00\xba\x40\x21\x9e\xde\xcb\x5c\x5a\x9a\x20\x1e\x2e\x6a\x63\xa4\x04\x98\x09\x9e\x52\x72\x4e\x53\xb0\x79\x88\x68\x4a\x65\xe6\xf6\x57\xd2\x35\x2d\x29\xe9\x42\x48\x57\x7c\xc4\x56\x48\x35\xb9\xe5\x48\x4c\xd6\xf9\x75\x5b\x0f\x62\xb2\xf5\xf4\x43\xb4\x35\xaf\x49\x73\x38\x22\xa7\x6f\xe2\x98\xdd\xca\x66\xee\x91\x76\xcc\xd4\x31\x5b\x3c\xfe\x12\x39\x60\x2f\x80\x21\x4c\x92\x94\x81\x2b\x04\x50\xbc\x60\xf7\x83\x91\xa1\x43\x2a\x13\x91\xff\xa2\x85\x0c\xc6\x46\x41\x11\x35\xb4\x28\x12\xef\x52\x0f\xae\xbb\xd3\x2a\xb0\xf4\x29\xec\x76\x36\x35\xcf\x43\x38\x6d\xc9\xa4\x4d\x36\x7b\x30\x59\xad\x40\x08\x63\x24\x99\x5f\x83\xa6\xbf\xc7\x62\x9a\x84\x6e\x72\xea\x42\xa4\x61\xb0\x46\x29\xae\xed\xea\xca\xc0\x77\x40\x06\x58\xf2\xeb\x75\xbb\xf4\xf6\x21\x64\x86\x7d\x00\x2a\x76\xd7\x46\x40\xe6\x97\x68\xd5\x51\x27\xc9\x32\xde\x3e\x25\xca\x1d\xb1\x2d\x5e\x17\xfc\xaa\x83\xea\xc0\xbf\x25\x2a\xad\x70\xf0\x40\xc1\xb5\x49\x60\xe3\x73\x55\xd0\x4c\x7f\xd9\xe5\x80\x4e\x87\x03\xe1\xd5\x6d\x8f\x7f\xae\xe3\xb7\xea\x1f\xb9\x33\x1a\xa1\xbb\xd7\x29\xf9\x02\x89\x6d\x8b\x13\xd1\x10\x25\x11\x8f\x24\xec\x7b\xa2\xa0\xc5\xae\xa8\xb1\xe9\x69\x64\x8b\xa5\xaa\xd0\xfc\x61\xf9\xd6\x48\xeb\xf7\x0b\xfb\xea\xe3\x19\x55\x77\x57\x19\xb7\x40\xe6\x3e\x80\x29\x5d\x1b\xb8\x29\x76\xc8\x05\xe7\x35\xd2\xde\xa1\x7b\xcb\x71\x1b\x33\x87\xe2\x63\x20\xc0\x11\xf0\x54\xd1\xdc\x2e\xe6\x55\x68\xa0\x43\xca\xc7\xc9\x81\x72\xee\x47\x98\x29\x77\xeb\x91\xc7\xe8\x2a\xec\x29\x99\x9f\x7a\x0c\xea\x2d\x90\xbf\x2f\xdd\xa4\x54\xea\x35\xb5\x03\xc7\xf2\x66\x68\xbd\xd6\x6e\xd6\x77\xed\xb3\x58\x4e\xe6\x35\x8d\xd0\x29\xfd\xd6\x65\xb4\x16\x39\x30\x67\xc7\xa6\x6c\x58\x63\x5a\x69\xbf\xe3\xe2\x77\xab\xe0\xf2\x64\x9a\x28\x74\x1e\xaf\x76\xb8\x3a\x43\xd5\x26\xb1\x53\x67\xa4\x84\x95\x7a\x40\x76\x79\xe4\x50\x5e\x4c\xba\xea\xea\xcd\xb8\x67\xd6\x03\x68\x36\xa3\xb0\x94\xb9\x15\xf8\x9a\x4a\x5f\x9c\xa1\xf4\x51\xe1\xe0\xaf\x65\x90\x4d\xfa\xdb\x30\x25\xdf\x0b\x95\x7f\x6b\x4d\xa5\x77\x95\x56\xc9\xa2\x6d\x54\x43\xd4\x60\x40\x9b\x83\xad\x76\xc6\xae\xc1\xbc\x55\x2a\x7d\x3c\x4d\x9c\x48\x89\xe8\x56\xce\x6e\xd5\x1e\xc6\x92\x3d\xb4\xf5\x6a\x65\xaf\x3a\xed\xd8\xa8\x4e\x0d\x87\x59\xfc\xec\x6c\x93\xd5\x3b\x63\xc4\x56\xd5\xe7\xab\x56\x4d\x65\xee\x72\x5e\x1a\x4d\xef\x76\x31\x48\x22\xfb\x76\x46\xfe\xb4\x2c\xf6\x1b\x30\x7b\x7f\xb5\x12\xe3\x6d\x42\x81\x85\x80\xb2\xc0\xf9\x6f\xc7\x34\xda\xed\x2d\xf1\xba\xdd\x86\x47\x6e\xae\x3b\x8d\x3b\x76\x85\x55\x75\x17\x4c\xd5\xa7\xcc\x7c\xd2\x56\xa6\x2e\xad\xd6\x86\x94\xe2\x86\xb6\xca\xb4\x2e\xb3\x53\xa3\x4b\xeb\x62\x84\xf6\x1a\xd5\x33\xef\xb3\x99\x52\x6d\x1c\xe4\xe1\x75\xaa\xaf\x56\xf5\xe4\xc7\x76\xd4\xaa\x6f\x52\xc7\x3d\xe1\x5b\xd0\xac\xad\x90\x70\xa9\xd6\x6d\x64\x17\xad\xb9\x44\x1f\xe5\xec\x82\xee\xaf\x9b\xfd\x78\xe0\x67\xde\xbe\x32\xc6\x8f\x6b\x4c\xf6\xb7\xc3\x5b\x6f\xb5\x9e\x9f\xae\xf1\xad\x3b\xcb\xcf\x1a\x55\xcb\xb4\xe4\x49\xce\x7c\x67\x51\xbe\xd2\xc2\x96\x27\xc6\x7e\x15\x0b\xb6\x52\xa4\xa6\xec\xef\xa8\x1a\x3c\x55\xc6\x3f\xaa\xe6\xb3\xcb\x6d\x46\xc0\xb6\xef\xd8\xa2\x48\x7d\x01\xaf\xd1\xeb\xa4\xa8\x52\xef\xc9\x07\xa2\x36\x79\x99\x84\x12\x71\x59\x67\x5e\x2e\xaf\xab\xaf\x3e\xef\xf5\xfc\x67\x48\x14\x26\xff\x92\xcc\xef\x01\xa4\x74\x19\x23\x00\x13\xb9\xa3\x27\xd0\x03\x31\x82\x09\x05\x49\x0a\x54\xf5\x31\x5d\xce\x19\x55\x85\xcc\x04\x01\x48\x10\x7f\x29\x4b\xae\x28\x80\x8b\xc5\x1c\xa3\xa8\xd8\x9b\x1c\xba\x66\x5f\x9c\x39\xfb\xf7\xbf\x5d\xd3\x2f\xb6\x2b\x47\xd9\x89\x60\x8d\x11\xaa\x56\xbe\x38\xf5\xdf\x2b\xd5\x2e\xf3\x07\xda\x1e\xa4\xa1\x31\x94\x34\x6e\x00\x2e\x3b\x6e\xee\x57\xdb\x5f\x1d\x28\x5b\x14\x96\xc2\xf8\x42\x1a\xf4\xaa\x78\x4b\xe9\x7e\xaf\x37\x83\xf4\x67\x3e\x1d\x93\x23\x59\x91\xdd\x2b\xdf\x5c\x80\xf3\x9b\x1c\xc4\x4d\x09\x99\x90\x1c\xc9\xf6\xea\xac\x62\x06\xe5\x08\x60\xf0\x57\xb3\x6a\x3e\xbb\x81\x07\x4f\xc1\x13\xb3\x4c\xfe\x89\xea\x95\x1d\x78\x2c\x31\xab\xf7\xbb\xad\x85\x37\x4e\x57\x4a\xae\xaf\xfb\xfd\x9e\xf5\x5c\x89\x58\xa2\xf6\x83\x25\xba\x32\x92\x33\xbe\xf9\x21\xd7\xef\xe4\x7c\xeb\xb6\x6f\x64\xd2\x17\x24\x9e\x6a\xeb\xa7\xca\xa1\xfc\x9d\x98\xb4\xd2\x65\x83\x8d\x95\x4e\xe5\x8b\x59\x7e\x1f\x47\xf3\xf3\x3b\x61\x76\xc7\xef\x1f\xe9\xf8\x7d\x26\xb8\x8e\xab\x14\xe5\xcd\x22\x0d\x27\xef\x8b\x46\x1b\x1d\xbe\xdf\xc2\xd1\xfa\x9d\xd6\x29\xdf\xea\xb4\xe1\x97\x23\xbc\x0e\x34\x55\x2e\x55\xd6\x8f\x29\x1b\xe7\xa7\xac\x2d\x2d\x67\x9d\xcc\x76\xb5\x87\x9b\xcc\xa6\xdb\x3b\xcd\x64\xc2\xfd\x56\x8e\x2f\x95\xb0\xda\xce\x79\x25\xed\xdc\x7f\xd7\xe3\x6a\x0a\xc6\xdb\xae\xa7\xd6\xcc\xfe\x8f\x74\xb8\xeb\xac\x66\x50\xf5\x4d\x33\x47\x03\xd7\xcd\x08\xbb\xfa\x63\x7b\x9d\xcd\xc3\x16\xed\xb6\xae\xc6\xdd\x55\x22\x6f\xab\x12\xd9\xd4\x47\xbb\xda\xe3\xaf\x5c\x7b\xdc\xe1\xfb\x0f\xbb\x72\xe5\x5d\xb9\xf2\xae\x5c\x79\x57\xae\xbc\x2b\x57\x16\xb9\x35\xaf\xba\xe4\x5d\x61\xf2\xae\x30\xf9\x21\x0a\x93\x37\x2b\x4d\xfe\x0a\xc5\xc9\x9e\xfa\xed\xe1\x2b\x94\x1f\xbb\x46\xb9\x7b\x91\x72\x97\x7a\x85\xaf\x50\xa9\xec\x51\x26\xb5\xf5\x72\x65\x3f\x53\xf5\x30\x1b\xd6\x0f\xc4\xba\x76\xb5\x50\x5b\x2b\x5d\xf6\xe2\xe4\xae\x7c\x79\x57\xbe\xbc\x2b\x5f\xde\x95\x2f\xef\xca\x97\x77\xe5\xcb\xbb\xf2\xe5\x5d\xf9\xf2\xae\x7c\x79\x57\xbe\xbc\x2b\x5f\xde\x95\x2f\xef\xca\x97\x1f\xaf\x7c\xb9\xc8\xd0\xb7\xbe\x6b\xd6\x50\x65\x6a\xa7\xfa\x43\x97\xcb\x5f\xeb\x00\x3d\xcc\x4e\x7c\xf5\xd3\xd1\xa5\x2d\xf9\x9a\xda\x0a\x37\x82\x65\x70\xc2\xfc\x9e\x52\xb1\x8d\x37\x39\x52\x57\xa3\xd1\x93\xcf\x4b\x38\xaf\x80\x29\xcd\xa6\x9f\x86\xcf\x46\x10\x40\x5a\x0f\xe1\xed\x99\x27\x29\x33\x89\xa9\x6f\x22\xb1\xd1\xda\xc8\x6f\xc0\xd6\x22\xd3\xc9\x81\x70\xcf\xd5\x86\x8e\x44\x3d\xae\x1b\x38\x14\xed\xdd\x89\x26\xb6\xd9\xc1\x77\x72\x2a\x5a\x0c\xd5\x32\xf9\xd8\xd1\xc1\xf0\x75\x31\x5a\xf1\xa8\x2a\x0f\x5d\x9d\x8d\xa6\x61\xab\x09\xba\xba\x5c\xf5\x16\x1c\x8f\x8e\x08\x95\x5c\x10\x7f\xef\xc8\xc7\x30\x37\xe1\xe4\x6f\xa0\x1b\xa9\xb3\x7a\x57\x55\xb9\x6d\x7b\x8f\xe8\x16\xe2\xbf\x76\x13\xe3\x72\x32\x9c\xd6\xbb\xde\xd0\x97\xe7\x38\xaf\x02\x6c\xb0\x4c\x6f\xad\x16\xa8\xd1\x6a\x68\xe0\xeb\xcd\x92\x03\x7e\x83\xe1\xd3\xed\x8d\x46\x44\xcd\xfb\x92\x39\xd2\x8d\x91\x1d\x85\x4d\x6c\xd1\xd6\x63\xda\x5a\x4c\x1f\x39\xb4\x6d\xe0\xda\x56\x23\x5c\xdf\xb1\xbe\x95\xe4\x61\x1b\xde\x6c\xd5\xfc\xb8\x46\x7c\xb4\x44\x62\x7b\x3c\x1e\x20\x9d\xd8\x80\x44\x6b\x2b\xe3\xa4\xe6\x9b\x8b\x06\x5b\xb0\xbf\x65\x50\x58\x36\x1a\xb6\x4f\xca\x7d\x03\xa7\x3a\x7d\xce\x2f\x96\x0e\xe4\xed\x0e\x2b\xee\x0e\x2b\xee\x0e\x2b\x7e\x53\xc7\x86\x36\x3f\xac\xa8\xd8\x26\xdc\x0e\xf9\x85\xbb\x86\xb3\x3c\x37\xf4\xb8\xab\x77\x62\xfb\xce\x5d\xeb\xf3\x18\x2d\x8f\x63\x68\x9a\x38\x3f\x85\x67\xc1\xc3\xe3\x18\xa4\xa5\x97\xdf\x47\x89\xbf\xff\x62\x71\xfb\x97\xfb\xca\xa3\xdb\x5a\x3d\x42\x89\x78\xf7\xcf\x23\x96\x7f\x34\x47\xd7\x22\xe5\x25\xbf\xb8\xec\x6d\xd5\xcb\x57\x73\xb9\xac\xe6\xfe\xd8\x06\x6f\x57\xca\xab\x9f\x39\xb5\x61\xb3\x49\xf5\xae\xbd\xba\x66\xe2\x2a\xae\xb1\x2d\xb6\x72\x11\x8c\x53\x72\xb8\xa5\xf9\xac\xbb\x33\x6e\xb3\x53\x63\x71\x76\xdf\x7e\xde\xfa\xb7\x9f\x7d\xfc\xc7\xe6\x0f\x40\xbb\x75\xb9\xf9\x69\xe8\xb2\x74\x6a\x8e\xbc\x45\x74\x26\xf5\xe2\x7f\x60\x49\x23\xae\xf5\x8f\x3d\x1b\xa2\x69\x9c\xb1\xdb\xe0\x23\xd0\x15\x46\x5d\xfc\x74\x39\x06\x7b\xce\xb1\x7c\x3f\x14\x5d\x7c\x27\xda\x09\x6a\x6c\xb9\x9c\x40\xdf\xbe\x12\x2b\x81\x9e\x87\x30\xa1\x95\x43\x62\xfa\x9c\x74\xfa\xaa\x74\xe7\xd3\x93\xd6\xef\x4d\x3f\xf6\xf1\xc9\xef\xe8\x4b\xd4\x86\x63\x50\x46\xa3\xc6\x3b\xf0\x2b\x2e\xd4\x37\x19\x8f\x93\x28\x3f\x73\x9e\x7b\x88\xc2\x75\x5c\x26\x38\x4d\xb4\x47\xf5\xfb\x89\xd5\x63\xe5\xe6\xb6\xaa\xff\x97\xb2\xeb\x11\x53\xeb\xfd\xf7\xfe\xa9\xec\xc6\xaf\x64\x03\x98\x44\xe2\x37\xc5\x2e\x3e\x72\x06\x69\xc6\xd8\x82\x4e\x0e\x0f\x29\x83\xe1\x4d\x7a\x8b\xc8\x74\x9e\x7e\x09\xc2\x34\x3e\xfc\xbc\x44\x94\x1b\x19\x7a\xf8\xc7\x9f\xfe\xfc\xa7\x3f\xfd\xe7\x9f\xff\xfb\x30\xe3\xd7\xc1\x02\x5e\xe3\x04\xf2\xb7\x07\x5f\x30\x9b\x89\xbf\x72\xf2\x04\x75\x37\xe8\xfe\x20\x4d\x0e\xe0\xc1\xb5\xb8\xab\xe0\x80\x66\xf3\x73\xf0\xe8\x1f\xee\xae\x15\x12\x47\xbd\x75\xc3\x39\xbc\xdd\x87\xbb\x77\x1f\xee\xde\x7d\xb8\x7b\xf7\xe1\xee\xdd\x87\xbb\x37\xfb\x70\xb7\xc5\x33\x65\x04\x26\x14\x86\xc2\xf2\x9c\x24\xdc\x29\x8a\x74\x95\xa7\x3a\x29\x0d\x9f\x35\xe6\x4b\x58\x2a\x74\xb1\xb4\xcc\x6b\x73\x24\x94\x8f\x1a\xdc\x3c\xa7\xa5\xf7\xff\x39\x5f\x99\x93\x23\x3d\xd0\x70\x8c\xd1\xec\x16\x67\x1d\xcf\xe1\x6d\x65\xe9\x1f\x27\x11\x7f\x64\x1f\xdf\xe5\x22\xc7\xcf\x5c\x81\x08\x7f\x97\xc7\xe6\x14\xec\xa3\x3c\x3c\x0f\xf2\xc7\x2f\x96\x78\x1e\x21\x32\x06\xf1\x73\x1d\x8c\x0b\x05\xde\xce\x13\xa4\xee\x38\x47\x90\xc1\x67\xb9\xde\x13\xbe\x4f\x35\x26\x8a\x9f\x8d\xfa\x76\x6d\xa7\x09\x8a\x0a\xcc\x24\x61\x27\x77\x0b\x8e\xf9\x33\xfe\xef\xaf\x70\x4e\xb3\xff\x8b\x6c\x56\x3e\xdc\x15\xc7\x27\x6b\x3e\xd4\x59\xe2\x3f\x1e\x27\xe0\xb9\x85\x00\xe7\x54\xc5\xcf\x5b\x10\xf3\x5c\x23\xe6\xb9\x46\xcc\xf3\x46\x62\x9e\xb7\x27\xa6\x87\xab\x11\x4c\xb6\x0c\x7e\x23\x58\x5e\x01\x46\xf3\x3b\xc0\xb2\x57\xe2\xe9\x04\x5c\x68\x6e\x57\xa5\x97\xc8\x56\xc8\x94\xc5\xd9\x92\xe9\xbe\xcd\x59\x16\x1c\xc9\x9f\xe6\x6b\xc4\xf8\x0f\x07\xa9\x82\x17\x29\x40\xf2\xb1\x35\xdd\x24\x7f\x34\xb1\x90\x6d\xeb\x52\x8c\x85\xd8\x38\xdb\xaa\xb4\xa8\x21\x56\xa2\xb1\xb8\x9e\x4d\xfd\x5d\x4f\x70\xcf\x75\x69\x5a\x69\xa7\x92\x1e\xd4\xc9\x93\x4c\xcc\x9c\x11\x34\xc5\x77\x2e\xfe\x3c\xf7\xe0\xcf\xf3\x16\xfc\x79\xde\x82\x3f\xcf\xdd\xfc\xe1\x7f\xad\x01\xe8\x03\xe0\xb8\x9d\xae\x2a\x7c\x15\xdf\x4b\x5d\xae\x5b\x63\x33\xa4\xda\x35\x57\x47\xe8\xab\xa8\x86\x2a\xd9\x3d\xf6\x09\x2f\xc6\x96\x2c\xb9\x96\xde\xef\x71\x5f\x33\x54\x28\x00\xf5\x5e\x3e\x45\x8a\x9f\x3e\xa3\x14\x3d\x04\x57\x2d\x63\x8a\xa4\x9b\x46\xa2\xb1\xe8\x79\xc7\x5c\xb5\x67\x5a\xab\x60\xc1\x7b\xf4\x45\xbd\x1d\x8e\x02\xc5\x6d\x09\x67\xb8\x5f\x80\x1c\x05\xa2\xd1\xd0\x23\xc0\x15\x49\xa8\xe2\xaf\xcc\x85\x93\x9e\x42\xce\x8d\x23\x1d\xaf\x62\x1e\xd4\x00\x39\x7b\xcc\x66\x52\x1e\xb5\x36\x92\x21\x66\x23\xf1\x6c\x38\xea\xf7\x34\xbf\x22\xcc\x95\x2a\xca\x55\x2a\x2a\x14\x6a\x71\xb5\x5e\x26\x42\x87\x87\x0e\xd3\xa4\x1e\x53\x00\x2b\x56\x1d\x40\xfe\x34\x13\x67\x3e\x4d\xdc\x8b\xcb\x53\x07\x40\x7c\xd5\x99\x06\x52\x3c\x5d\x86\xcf\x65\xc0\x47\x60\xe8\x25\x90\xb9\xf0\x95\x0a\xb7\x8c\x3c\x89\xca\x7c\x28\xe6\xb4\xbd\x8e\x33\xfb\xe6\x9a\xf9\x74\x02\xe2\xb1\x74\xfe\xcc\x58\xf1\x16\xce\x3b\x5f\xfc\xd9\x34\x52\xad\x95\x2b\x25\x43\x73\x37\x3b\x86\x37\x08\xd0\x25\x41\x45\xa9\x58\x31\x49\x54\x79\xd5\xa1\xcc\x30\x01\x8a\x16\x90\x40\x96\x12\x10\xce\x20\x81\x21\x43\x84\x1a\xf5\x1f\x3f\x50\x46\xce\x48\xba\x40\x84\x61\x44\x4f\x8b\x7c\x14\x2d\x0a\xf5\x1c\xef\x4d\xa7\x55\x07\xaa\x5d\x6f\x4a\xd1\x42\x00\x4a\x09\x43\xd1\x3b\x74\x4f\xeb\x46\xb4\x83\xc9\xc9\xe4\xbd\xb4\x7d\x5c\x37\x1c\x31\x6a\x96\xbd\x56\xc5\x86\x41\x96\x74\x1b\xae\x56\x05\xbf\x3e\xa6\xc2\x34\x55\x6f\xa3\x30\x07\x1d\xc4\xc1\x40\xb8\x8c\x22\x0b\x20\xa1\x0f\x46\x96\xf9\xd2\xe3\xd7\x2c\xa1\x5b\x80\x29\x6e\xe5\xca\xe6\xe7\xc7\x02\xde\x8f\x59\x8a\xac\x3b\x7e\x23\x43\x56\x9a\xea\x46\x0f\x0f\x01\x8c\x22\x80\x13\xab\x20\x95\x2b\xea\x8c\xc4\x65\x43\xd6\xb2\xf9\xa4\xc8\x22\xbf\x12\x77\x2b\xb7\xea\x5a\x04\xcf\xf3\x5e\x5d\xb5\x40\xbf\xfa\xcd\xba\x71\xe5\x6a\xdd\x66\x19\xb0\x40\x09\x06\xe6\xc5\xbb\xa0\xf4\x63\x08\x40\x4b\x0d\x34\x4d\x09\xb8\x19\x83\xdb\x22\xa7\x52\xcc\xa2\xea\x78\x0b\xe7\x17\x37\x97\xe0\x08\xdc\xfa\x48\xe2\x26\xf7\xc0\x6e\x20\x9d\xd6\xe4\xbc\xb6\xc3\x54\xde\x4d\xe8\x2c\xa1\x6f\xce\x4f\x4d\xd1\x2a\x43\xb6\x0a\x2e\x95\x82\x6b\xc1\xb2\x2c\xa9\xb4\xbd\xa4\x5a\xba\xd4\x4b\x6a\xa5\x43\x27\x49\xb5\x40\x79\x5c\x49\xad\x9d\xe0\x4e\xc2\x9b\x3f\x52\x28\x64\x7e\x82\xee\xc9\x4b\x47\xcc\x9e\x1b\x95\xd9\x93\x39\x64\x76\x5f\x8c\xb2\x94\x20\xa1\x9c\x73\x87\x8c\xa5\xf6\x86\x64\x19\x32\xe5\x95\x39\xb6\x68\x63\xbf\x60\x40\xa4\x81\x9d\xfe\x5b\x91\x02\xe1\xee\xbc\x45\xdc\x6d\xcf\xcc\x0d\xe4\xca\xfa\xf9\x47\x12\x17\x2b\x28\x1e\x83\x3d\x0b\x88\x9a\xfd\xe2\x62\xc6\xf7\x39\xee\x47\x36\x0c\x6c\x7b\xda\x86\xea\x50\x87\xf8\xd2\x7f\xa1\x30\xdb\x79\xcd\x52\xe6\x65\x35\x42\x73\xc3\xb9\x80\x84\x3a\x1c\xb0\x29\x49\x63\x90\xc3\x03\xf9\xbe\x90\xd4\x51\x7c\xb6\x93\x08\x4c\xf1\x7c\x2e\x21\xe1\x44\xba\xcc\xbc\x8b\xf2\x65\x6c\x4a\xd2\x44\xd0\x85\x9e\xdc\x0d\x6a\x41\x4a\x65\x9c\x1b\x1b\x10\x4f\x10\x9d\xf6\x93\x94\x1b\x1a\x42\x91\xb4\xc6\x49\xd4\xa0\xbd\xeb\x20\xe1\x29\xb8\xcd\xaa\x53\xe2\x9a\x1d\x1b\x51\xa7\xb2\xb7\x07\x6e\x83\x73\x53\xae\x16\x90\x30\xcd\xf1\xa5\xc1\xf9\x62\x8e\xd9\x70\xff\x36\x38\x57\xbe\x5f\x08\x83\xf3\xdc\xa7\xce\xef\xb2\x51\x35\x23\xa2\xfb\x88\x83\x5c\xad\xa4\x5c\x85\x30\x28\x7c\xd4\x42\xd5\xd8\x77\x53\xef\x16\x52\x64\x9c\x9d\x05\xfc\x09\xf8\xf1\xe9\x53\xfa\xe3\x60\x0c\x38\x5a\x23\x2d\x38\x2d\xab\x4f\x35\xa5\x78\x2c\xe6\x53\xb8\xce\x15\x98\xa2\x63\x5a\xb9\xea\x69\xa1\xdc\x55\x4e\x89\x4f\xb5\xbd\x68\xbd\xa7\xaa\xea\x05\x9a\x17\x9c\x5b\x18\xac\xd7\x97\x0d\xaa\xdd\x5b\xd1\xb6\x52\xc7\x2a\x24\x76\xaa\x5f\x6a\xea\xdf\x39\xa6\x62\xcf\xa2\xda\xcc\xa5\x88\xe9\x1c\x87\xc8\xd6\x45\x69\x64\x5a\xab\x92\xe9\x30\xa6\xe0\xe2\xd2\x43\x2d\x8f\xc0\xf0\xe2\xd2\xa7\x14\xd3\x59\x25\x23\x4f\x4a\xc3\x1b\x54\x07\x88\x8b\x6f\x4c\xc5\x9e\x9a\xd8\x38\x1b\x83\xb8\xb0\x9e\xf9\xc6\x59\xd7\x22\x22\x8f\x32\xa2\xb8\x6d\xcd\x90\xcd\xf8\x17\xb7\x1b\xbb\x78\x71\x81\x2f\x85\x50\x3b\xde\x9b\xdb\x39\x6e\x30\x59\xce\xe5\xff\x03\x00\x00\xff\xff\x1c\x27\x3b\x38\xcd\xcb\x00\x00") func tableGoTmplBytes() ([]byte, error) { return bindataRead( @@ -169,7 +169,7 @@ func tableGoTmpl() (*asset, error) { } info := bindataFileInfo{name: "table.go.tmpl", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x15, 0xb0, 0xb5, 0xa0, 0x7f, 0xa, 0xb, 0xa, 0x11, 0x1a, 0x6f, 0x9e, 0x1b, 0x5a, 0xaa, 0x39, 0x98, 0x9c, 0x95, 0x9f, 0x95, 0xc9, 0xa3, 0x8b, 0x29, 0x5b, 0xf4, 0x5b, 0xa3, 0xb3, 0x49, 0xf5}} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd7, 0xa2, 0xd, 0x80, 0xae, 0x2, 0x8f, 0xc0, 0x43, 0xc, 0xc4, 0xb8, 0xe0, 0xeb, 0xe3, 0x40, 0x76, 0x18, 0xac, 0x64, 0x8, 0x47, 0xe2, 0x48, 0xeb, 0x3c, 0x75, 0x50, 0x16, 0x4c, 0x74, 0x24}} return a, nil } diff --git a/server/gendb/gendb.go b/server/gendb/gendb.go index ae1a4bd9..6718f959 100644 --- a/server/gendb/gendb.go +++ b/server/gendb/gendb.go @@ -16,7 +16,7 @@ import ( "github.com/go-swagger/go-swagger/generator" ) -//go:generate go-bindata -nometadata -ignore .*\.go$ -pkg gendb -prefix $PWD/server/gendb/ $PWD/server/gendb/ +//go:generate go-bindata -nometadata -ignore .*\.go$ -pkg gendb -prefix ../../server/gendb/ ../../server/gendb/ //go:generate gofmt -w bindata.go const xdbExtensionKey = "x-db" diff --git a/tools/tools.go b/tools/tools.go index b087577e..c23d2146 100644 --- a/tools/tools.go +++ b/tools/tools.go @@ -1,3 +1,4 @@ +//go:build tools // +build tools package tools diff --git a/tracing/go.mod b/tracing/go.mod index 96789233..4bf60292 100644 --- a/tracing/go.mod +++ b/tracing/go.mod @@ -1,6 +1,6 @@ module github.com/Clever/wag/tracing -go 1.16 +go 1.21 require ( github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.2 // indirect